任务
异步任务
@Async介绍
在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。
使用方法
在启动类上添加@EnableAsync
注解
然后在需要异步执行的方法上使用@Async
注解即可。
定时任务
有些任务需要定时执行,如日志记录,清理缓存。。。所以需要定时任务。
@Scheduled(cron=“”)
A cron-like expression, extending the usual UN*X definition to include triggers
on the second as well as minute, hour, day of month, month and day of week.
举例
second minute, hour, day of month, month,day of week.
* * * * * *
详情看下面的介绍
使用方法
在启动类上添加@EnableScheduling
注解
然后在方法上添加@Scheduled()
cron表达式介绍
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
天(星期)(0~7 0,1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
/
代表步长-
代表区间?
在周和天冲突的时候使用*
代表所有L代表最后
W代表工作日
C代表和
Calendar
类计算后的值#
代表第几个4#2
代表第四个星期2
字段 |
允许值 |
允许的特殊字符 |
||
---|---|---|---|---|
秒 |
0-59 |
, - * / |
||
分 |
0-59 |
, - * / |
||
小时 |
0-23 |
, - * / |
||
日期 |
1-31 |
, - * ? / L W C |
||
月份 |
1-12 或者 JAN-DEC |
, - * / |
||
星期 |
1-7 或者 SUN-SAT |
, - * ? / L C # |
||
年(可选) |
留空, 1970-2099 |
, - * / |
邮件任务
1.添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.修改配置文件
spring:
mail:
username: anin6@163.com
password: 123
host: smtp.163.com
3.测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestSendMail {
@Autowired
private JavaMailSenderImpl javaMailSender;
@Test
public void sendEmail(){
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom("anbu66@163.com");
simpleMailMessage.setTo("976850@qq.com");
simpleMailMessage.setText("xxxxx");
simpleMailMessage.setSubject("今天的结果第三个");
simpleMailMessage.setSentDate(new Date(System.currentTimeMillis()));
javaMailSender.send(simpleMailMessage);
System.out.println("发送成功");
}
//发送带附件的邮件
@Test
public void testSendConfMail()throws Exception{
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
mimeMessageHelper.setFrom("anbingxu666@163.com");
mimeMessageHelper.setTo("976835150@qq.com");
mimeMessageHelper.setText("xxxxxx");
mimeMessageHelper.setSubject("今天的结果第三个带附件");
mimeMessageHelper.setSentDate(new Date(System.currentTimeMillis()));
mimeMessageHelper.addAttachment("hello",new File("/Users/bxan/Desktop/hello"));
javaMailSender.send(mimeMessage);
System.out.println("发送成功");
}
}