SpringBoot几种定时任务的实现方式

2019-04-17  本文已影响0人  皮皮力_996a

定时任务实现的几种方式

使用spring task方法实现定时发送简单邮件

在SpringBoot项目中,使用注解来实现定时任务,首先创建项目,导入依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置application.properties

spring.mail.host=smtp.qq.com
spring.mail.username=*******@qq.com
spring.mail.password=amujxrblfdyobeeh
spring.mail.default-encoding=UTF-8

如果不加下面3句,会报530错误

spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

MailService接口

public interface MailService {
/**
* 发送简单邮件
*/
void sendMail(String to,String subject,String content);

}

实现接口
@Service("mailService")
public class MailServiceImpl implements MailService {
@Autowired
private JavaMailSender mailSender;

@Override
public void sendMail(String to, String subject, String content) {
    SimpleMailMessage mailMessage=new SimpleMailMessage();
    mailMessage.setFrom("******@qq.com");//发起者
    mailMessage.setTo(to);//接受者
    mailMessage.setSubject(subject);
    mailMessage.setText(content);
    try {
        mailSender.send(mailMessage);
        System.out.println("发送简单邮件");
    }catch (Exception e){
        System.out.println("发送简单邮件失败");
    }
}


}

写定时任务:定时发送文件: 每天上午10:15触发

@Service
//@Async
public class TaskService {
@Autowired
private MailService mailService;

@Scheduled(cron = "0 15 10 ? * *")
public void proces(){
    mailService.sendMail("815835155@qq.com","简单邮件","lalalalalalalaal");
    System.out.println("111");
}

}

上一篇 下一篇

猜你喜欢

热点阅读