任务
异步任务
service
@Service
public class AsyncService {
//告诉spring这是个异步方法
@Async
public void hello(){
try {
//模拟3秒数据处理
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("数据处理中");
}
}
controller
@RequestMapping("/hello")
public String hello(){
asyncService.hello();
return "ok";
}
主程序上开启异步支持
@EnableAsync
邮箱任务
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置
spring:
mail:
username: 邮箱
password: 授权码
#QQ邮箱为信箱服务器
host: smtp.qq.com
#QQ邮箱需要设置ssl加密
properties:
mail:
smtp:
ssl:
enable:
true
测试
@Autowired
JavaMailSenderImpl mailSender;
@Test
void contextLoads() {
//简单邮件
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("主题");
message.setText("正文");
message.setFrom("发件人@qq.com");
message.setTo("收件人@qq.com");
mailSender.send(message);
}
@Test
void contextLoads2() throws MessagingException {
//复杂邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject("主题");
helper.setText("<p style='color:red'>正文</p>", true);
helper.addAttachment("1.jpg", new File("文件地址"));
helper.setFrom("发件人@qq.com");
helper.setTo("收件人@qq.com");
mailSender.send(mimeMessage);
}
定时功能
主程序开启定时功能
@EnableScheduling
service
@Service
public class ScheduledService {
//cron 表达式 秒 分 时 日 月 星期几 年(年可以省略)
@Scheduled(cron = "0/2 * * * * ?")//每两秒一次
public void hello(){
System.out.println("hello方法执行了");
}
}