开启注解扫描
在application中开启注解扫描
//定时任务注解扫描
@EnableScheduling
//异步任务注解扫描
@EnableAsync
定时任务
private int num = 1;
@Scheduled(cron = "0/1 * * * * 1-7")
public void ScheduledTest(){
System.out.println(num++);
}
@Scheduled注解开启定时任务,参数为任务发生的时间,
参数为:秒 分 时 日 月 星期
- 0 0 12 * * ? 每天12点触发
- 0 15 10 ? * * 每天10点15分触发
- 0 0 12 * * ? 每天12点触发
- 0 15 10 ? * * 每天10点15分触发
- 0 15 10 * * ? 每天10点15分触发
- 0 15 10 * * ? * 每天10点15分触发
- 0 15 10 * * ? 2005 2005年每天10点15分触发
- 0 * 14 * * ? 每天下午的 2点到2点59分每分触发
- 0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
- 0 0/5 14,18 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发) 每天下午的 18点到18点59分(整点开始,每隔5分触发)
- 0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发
- 0 10,44 14 ? 3 WED 3月分每周三下午的 2点10分和2点44分触发
- 0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发
- 0 15 10 15 * ? 每月15号上午10点15分触发
- 0 15 10 L * ? 每月最后一天的10点15分触发
- 0 15 10 ? * 6L 每月最后一周的星期五的10点15分触发
- 0 15 10 ? * 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发
- 0 15 10 ? * 6#3 每月的第三周的星期五开始触发
- 0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次
- 0 11 11 11 11 ? 每年的11月11号 11点11分触发
异步任务
- @Async:一个方法不能调用在本类中的异步方法
假设一个方法要执行2秒钟
public void AsyncTest1(){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("休眠2秒---");
}
另一个类中调用了这个方法
public void AsyncTest(){
System.out.println("启动---");
asyncService.AsyncTest1();
System.out.println("终止---");
}
没有异步任务程序会同步执行,就是按照顺序执行,休眠两秒的方法执行完了才会输出---终止---
如果在休眠两秒的方法加上异步任务注解
@Async
public void AsyncTest1(){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("休眠2秒---");
}
程序不会等休眠方法执行完再往下执行
邮件
pom中导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
application.yml中配置
以qq邮箱为例
mail:
username: xxxxxxxxxx@qq.com
password: xxxxxxxxxx
host: smtp.qq.com
properties.mail.smtp.ssl.enable: true
用户名为qq邮箱
密码不是你的qq密码也不是你的qq邮箱密码,因为直接把密码写在配置中比较危险
在qq邮箱的设置中在账户设置下
- 开启并生成授权码
- 只有开启服务才可以生成授权码
发送邮件
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(message);
try {
messageHelper.setSubject("jj");
messageHelper.setText("hello word");
messageHelper.setTo("xxxxxxxxx@163.com");
messageHelper.setFrom("liuxiansen");
messageHelper.addAttachment("jjboy",new File("images/1.jpg"));
} catch (MessagingException e) {
e.printStackTrace();
}
mailSender.send(message);
可以设置主题,内容,收件人,发件人,以及附件。