1.异步任务
在要异步的方法上加 @Async注解
//告诉spring这是一个异步方法(原理就会开启一个线程池调用这个方法)
@Async
public void hello(){
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("任务开始处理");
}
在启动类上加@EnableAsync ```java @SpringBootApplication @EnableAsync//开启异步注解功能 public class EsApplication {
<a name="UvZTb"></a>
# 2.定时任务
1. 在启动类上加@EnableScheduling
```java
@EnableScheduling
public class EsApplication {
- 在要定时执行的方法啥加@Scheduled(cron = “ * MON-FRI”)
- 以下是每周一到周五每秒都执行一次
/**
* second(秒) minute(分), hour(时), day of month(日), month(月) and day of week(周几)
* "0 * * * * MON-FRI"(每周一到周五整秒的时候执行一次)
* // @Scheduled(cron = "0 * * * * MON-FRI")//每周一到周五整秒的时候执行一次
// @Scheduled(cron = "* * * * * MON-FRI")//每周一到周五每秒都执行一次
// @Scheduled(cron = "0,2,3,4 * * * * MON-FRI")//周一到周五每分钟的0-4整秒的时候执行(枚举)
// @Scheduled(cron = "0-4 * * * * MON-FRI")//周一到周五每分钟的0-4整秒的时候执行(区间)
@Scheduled(cron = "0/4 * * * * MON-FRI")//每4秒执行一次
*/
@Scheduled(cron = "* * * * * MON-FRI")
public void helloScheduled(){
System.out.println("hello");
}
3.邮件任务
3.1pom引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
3.2发件人邮箱设置
这里以qq邮箱为例,首先要开启smtp服务,然后就是要生成授权码(这个授权码才是邮箱的密码),我自己生成的授权码是:srqmtrolyymhbada
activation3.2配置application
```json spring.mail.username=1411344876@qq.com spring.mail.password=srqmtrolyymhbada spring.mail.host=smtp.qq.com spring.mail.properties.mail.smtp.ssl.enable=true
- 以下是每周一到周五每秒都执行一次
<a name="Pj6cs"></a>
## 3.3测试发邮件
1. 简单的发文本
```java
@Autowired
JavaMailSenderImpl javaMailSender;
@Test
public void testmail(){
SimpleMailMessage message = new SimpleMailMessage();
//邮件设置
message.setSubject("今晚技术部开会");//标题
message.setText("18点开会,地址技术部办公室,不得迟到");//内容
message.setTo("1913284695@qq.com");//发给谁
message.setFrom("1411344876@qq.com");//谁发的
javaMailSender.send(message);
}
发带附件的邮件
@Test
public void test2() throws Exception{
//创建一个复杂的消息邮件
MimeMessage message=javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true );
//邮件设置
helper.setSubject("今晚技术部开会");//标题
helper.setText("<b>18点开会</b><br>地址技术部办公室,不得迟到",true);//内容
helper.setTo("1913284695@qq.com");//发给谁
helper.setFrom("1411344876@qq.com");//谁发的
//上传文件
helper.addAttachment("1.png",new File("D:\\upimgs\\article\\1.png"));
javaMailSender.send(message);
}