Spring Boot 与 任务 (异步任务、定时任务、邮件任务)
Spring Boot 与 任务 (异步任务、定时任务、邮件任务)
异步任务
@Async//开启异步任务 告诉spring 这是一个异步方法
public void hello(){
try{
Thread.sleep(3000);
}catch(InterruptedExcetion e){
e.printStackTrace();
}
System.out,println("Hello world");
}
@EnableAsync//开启异步注解功能
@EnableRabbit//开启Rabbit监听功能
@SpringBootApplication
public class SpringbootRabbitApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootRabbitApplication.class, args);
}
}
定时任务
两个注解 @EnbleSchedyling @Scheduled
public @interface Scheduled {
String CRON_DISABLED = "-";
String cron() default "";
String zone() default "";
long fixedDelay() default -1L;
String fixedDelayString() default "";
long fixedRate() default -1L;
String fixedRateString() default "";
long initialDelay() default -1L;
String initialDelayString() default "";
}
建立方法 执行定时任务
/**
* 秒 分 时 日 月 周几
* * * * * * MON-SUN / 0-7 在周1 到 周6 每月 每天 没时 没分 每秒都调用 0 7 都是周日 1-6 星期1到6
*/
// @Scheduled(cron = "* * * * * MON-SUN")
// @Scheduled(cron = "0,1,2,3 * * * * MON-SUN")枚举
// @Scheduled(cron = "0-3 * * * * MON-SUN")区间
// @Scheduled(cron = "0/4 * * * * MON-SUN")步长 从0秒启动 每4秒执行一次
public void ff1(){
System.out.println("hello world");
}
开启注解功能
@EnableScheduling//开启定时任务注解功能
@SpringBootApplication
public class SpringbootRabbitApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootRabbitApplication.class, args);
}
}
cron表达式
邮件任务
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置
spring.mail.username=3132820261@qq.com
# 这里填写的是授权码 不是密码 注意服务要开启
spring.mail.password=
spring.mail.host=smtp.qq.com
#qq邮箱需要安全验证
spring.mail.properties.mail.smtp.ssl.enabke=true
SpringBoot 自动配置 会生成JavaMailSenderImpl 类 发送邮件任务 相关的配置文件在MailProperties 类中
@Autowired
JavaMailSenderImpl javaMailSender;
@Test
public void senderMail(){
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();//简单邮件
simpleMailMessage.setSubject("加油 打工人");//设置标题
simpleMailMessage.setText("努力学习 不要放弃");//设置正文
simpleMailMessage.setTo("2632700902@qq.com");//发给谁
simpleMailMessage.setFrom("3132820261@qq.com");//谁发的
javaMailSender.send(simpleMailMessage);
}
public void senderMail2() throws Exception{
MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage,true);//注意设置为true 支持附件上传
mimeMessageHelper.setSubject("加油 打工人");
mimeMessageHelper.setText("<h1>努力学习 不要放弃</h1>",true);//设置支持html
mimeMessageHelper.setTo("2632700902@qq.com");
mimeMessageHelper.setFrom("3132820261@qq.com");
mimeMessageHelper.addAttachment("1.jpg",new File("C:\\Users\\31328\\Desktop\\tmnp\\img\\1.jpg"));//上传文件
javaMailSender.send(mimeMailMessage);
}

浙公网安备 33010602011771号