@Async
在某一个需要异步操作的方法头标注上@Async注解,同时在主方法头加上@EnableAsync注解来启用异步操作。
@Scheduled
在需要有定时任务的方法上加上此注解,同时在主方法头加上@EnableScheduled注解来启用异步操作。
举个🌰 :
@Scheduled(cron = "0 * * * * MON-FRI")
被上述注解标注的方法,会在周一至周五的每个0秒(整秒)的时间运行一次。
Cron表达式有6位,中间用空格隔开:
[second, minute, hour, day of month, month, day of week]
对应的scope:
[0-59, 0-59, 0-23, 1-31,1-12,0-7]
最后一个0和7都代表周日
Cron表达式中使用是per time unit的意思,例如在第二位的代表每分钟。
Cron表达式中可以使用',
', '-
', '/
', '?
'表示不同的时间间隔。以第一位(秒)为例:
1, 2, 3
代表每到第1,2,3秒时,就执行一次1 - 3
的效果与上述一致,代表区间内符合,即代表每到第1,2,3秒时,就执行一次0/4
代表每间隔4秒执行一次?
用来做冲突匹配
更多参考:crontab.guru/
邮件
启动场景:spring-boot-starter-mail
用邮件时必要的相关配置:
hostname, password, host分别是发送方的用户名,密码,及发送发服务器。
发送简单邮件时(不包括附件等复杂功能),创建SimpleMailMessage实例,然后用messageObject.setSubject("主题")
messageObject.setText("内容")
messageObject.sentTo("收件人")
messageObject.sentFrom("发件人")
来构造邮件
如果邮件服务器需要建立安全通讯,可以通过配置这个参数来处理:
Spring.mail.properties.mail.smtp.ssl.enable = true
发送复杂邮件时,需要创建MimeMessage和MimeMessageHelper实例
可以做addAttachment操作。