springboot实现定时器
1.创建springboot项目:
编写定时器,可以看下:springboot实现定时器
编写邮件服务类:可以看下:springboot发送邮件(1):发送简单邮件
2.启动类启用定时:
/** * 启动类 */ @SpringBootApplication //开启定时 @EnableScheduling public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
3.主要业务代码:
/** * 定时任务类,实现定时发送邮件 * Created by ASUS on 2018/5/6 * * @Authod Grey Wolf */ //要声明为bean,没有声明启动类启动无法实现定时效果 @Component public class SchedulerTask { @Autowired private MailService mailService; @Value("${mail.fromMail.addr}") private String form; private int count=1; /** * 表示每隔6秒发送一次邮件 */ @Scheduled(cron = "*/6 * * * * ?") private void proces(){ String content="springboot整合定时器实现定时邮件发送,这是第"+(count++)+"封邮件"; mailService.sendMail(form,"简单邮件",content); System.out.println("发送定时邮件成功"); } }
邮件服务类:
/** * * 邮件服务类 * Created by ASUS on 2018/5/5 * * @Authod Grey Wolf */ @Service("mailService") public class MailServiceImpl implements MailService { @Autowired private JavaMailSender mailSender; @Value("${mail.fromMail.addr}") private String form; /** * 发送简单邮件 * @param to 接受者 * @param subject 主题 * @param content 内容 */ @Override public void sendMail(String to, String subject, String content) { SimpleMailMessage mailMessage=new SimpleMailMessage(); mailMessage.setFrom(form); mailMessage.setTo(to); mailMessage.setSubject(subject); mailMessage.setText(content); try { mailSender.send(mailMessage); // System.out.println("发送简单邮件"); }catch (Exception e){ e.printStackTrace(); System.out.println("发送简单邮件失败"); } } }
4.run启动类application.class,测试效果:
注:有可能邮件会发送失败的原因:邮件发送过于频繁,网络异常等。