异步任务
主配置类上添加:@EnableAsync // 开启异步任务
其他方法调用@Async标注的方法,当此标注的方法阻塞时不影响调用它的方法继续向下继续续执行。
@Service
public class TaskService {
// 异步任务:当此方法在他处被调用时,不用等到此异步方法运行结束,他处方法可继续向下运行。
@Async
public void async() throws InterruptedException {
System.out.println("沉睡开始...");
Thread.sleep(3000);
System.out.println("沉睡结束...");
}
}
定时任务
主配置类上添加注解:@EnableScheduling // 开启定时任务
定时执行的方法标注注解:@Scheduled
@Component// 扫描到容器
public class CronService {
/**
* 秒 分 时 日 月 day of week
* , 枚举
* / 步长 0/5 从0开始,每隔5(?)时间执行一次
* - 区间
* 0和7 都表示周日
* 1-6 周一到周六
* * 任意
*/
@Scheduled(cron = "0/5 * * * * MON-SUN")
public void cron(){
System.out.println("定时任务.");
}
}
邮件任务
引入场景启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
application.properties添加配置
#发送邮件的邮箱
spring.mail.username=3270297043@qq.com
#邮件厂商设置自动生成的
spring.mail.password=nwcsqhhdfkerciba
spring.mail.host=smtp.qq.com
#安全访问
spring.mail.properties.mail.smtp.ssl.enable=true
发送邮件
@Controller
public class TaskController {
@Autowired
TaskService taskService;
@Autowired
JavaMailSenderImpl javaMailSender;
@GetMapping("/hello")
@ResponseBody
public Object testAsync() throws InterruptedException, MessagingException {
HashMap<String, Object> stringObjectHashMap = new HashMap<>();
stringObjectHashMap.put("name","张珊");
stringObjectHashMap.put("gender","女");
JSONObject jsonObject = JSONObject.fromObject(stringObjectHashMap);
taskService.async();
// 发送普通文本邮件
// SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
// simpleMailMessage.setSubject("这是任务邮件主题");
// simpleMailMessage.setText("来自定时任务的邮件");
// simpleMailMessage.setTo("940389723@qq.com");
// simpleMailMessage.setFrom("3270297043@qq.com");
// javaMailSender.send(simpleMailMessage);
// 发送多媒体邮件
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setSubject("这是多媒体邮件");
mimeMessageHelper.setText("明天<b style='color:red;'>7点</b>开会!",true);
mimeMessageHelper.addAttachment("材料5.jpg",new File("F:\\Desktop\\材料5.jpg"));
mimeMessageHelper.addAttachment("材料4.jpg",new File("F:\\Desktop\\材料4.jpg"));
mimeMessageHelper.setTo("940389723@qq.com");
mimeMessageHelper.setFrom("3270297043@qq.com");
javaMailSender.send(mimeMessage);
return jsonObject;
}
}