SpringBoot(十一)任务

本文详细介绍Spring框架中异步任务和定时任务的实现方法,包括如何启用异步和定时功能,使用@Async和@Scheduled注解,以及cron表达式的解析。同时,还介绍了如何在Spring中发送简单邮件和复杂邮件,包括文本、HTML格式和附件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务

(1)异步任务

在主配置类加上@EnableAysnc,开启异步注释功能

在异步方法加上@Aysnc

(2)定时任务

在主配置类加上@EnableScheduling,开启异步注释功能

在异步方法加上@Scheduled

    /**
     * second(秒), minute(分), hour(时), day of month(日), month(月), day of week(周几).
     * 0 * * * * MON-FRI
     *  【0 0/5 14,18 * * ?】 每天14点整,和18点整,每隔5分钟执行一次
     *  【0 15 10 ? * 1-6】 每个月的周一至周六10:15分执行一次
     *  【0 0 2 ? * 6L】每个月的最后一个周六凌晨2点执行一次
     *  【0 0 2 LW * ?】每个月的最后一个工作日凌晨2点执行一次
     *  【0 0 2-4 ? * 1#1】每个月的第一个周一凌晨2点到4点期间,每个整点都执行一次;
     */
   // @Scheduled(cron = "0 * * * * MON-SAT")
    //@Scheduled(cron = "0,1,2,3,4 * * * * MON-SAT")
   // @Scheduled(cron = "0-4 * * * * MON-SAT")
    @Scheduled(cron = "0/4 * * * * MON-SAT")  //每4秒执行一次

cron表达式:

字段允许值允许的特殊字符
0-59, - * /
0-59, - * /
小时0-23, - * /
日期1-31, - * ? / L W C
月份1-12, - * /
星期0-7或SUN-SAT 0,7是SUN, - * ? / L C #
特殊字符代表含义
,枚举
-区间
*任意
/步长
?日/星期冲突匹配
L最后
W工作日
C和calendar联系后计算过的值
#星期,4#2,第2个星期四

(3)邮件任务

引入spring-boot-starter-mail依赖

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

配置

spring.mail.username=534096094@qq.com
spring.mail.password=gtstkoszjelabijb
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.smtp.ssl.enable=true

使用

@Test
public void contextLoads() {
   SimpleMailMessage message = new SimpleMailMessage();
   //邮件设置
   //标题
   message.setSubject("通知-今晚开会");
   //内容
   message.setText("今晚7:30开会");
   //收件人
   message.setTo("17512080612@163.com");
   //发件人
   message.setFrom("534096094@qq.com");

   mailSender.send(message);
}

@Test
public void test02() throws  Exception{
   //1、创建一个复杂的消息邮件
   MimeMessage mimeMessage = mailSender.createMimeMessage();
   MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

   //邮件设置
   helper.setSubject("通知-今晚开会");
   //使html生效
   helper.setText("<b style='color:red'>今天 7:30 开会</b>",true);

   helper.setTo("17512080612@163.com");
   helper.setFrom("534096094@qq.com");

   //上传文件
   helper.addAttachment("1.jpg",new File("C:\\Users\\lfy\\Pictures\\Saved Pictures\\1.jpg"));
   helper.addAttachment("2.jpg",new File("C:\\Users\\lfy\\Pictures\\Saved Pictures\\2.jpg"));

   mailSender.send(mimeMessage);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值