使用异步任务很简单
开启异步任务
@EnableAsync
@SpringBootApplication
public class TaskApplication {
public static void main(String[] args) {
SpringApplication.run(TaskApplication.class, args);
}
}
在service中写异步任务
@Service
public class UserService {
@Async
public void test(){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("=====================> ");
}
在controller中调用异步任务,会发现,并不用等2秒,就显示出来了
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/test")
public String test(){
userService.test();
return "=================>";
}
}
使用SpringTask的定时任务
开启定时任务
@EnableScheduling
@SpringBootApplication
public class TaskApplication {
public static void main(String[] args) {
SpringApplication.run(TaskApplication.class, args);
}
}
在service中写定时任务
/**
* second, minute, hour, day of month, month, day of week
*/
@Scheduled(cron ="* * * * * MON-SUN")
public void test2(){
System.out.println("===================>test");
}
启动springboot,会发现每秒打印===================>test
更多定时任务规则可以参照如下
接下来邮件任务
邮件发送,我使用qq邮件,在qq邮箱中开启SMTP
按照要求发送短信后,得到邮箱的加密密码
在pom.xml中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
在application.properties中配置
spring.mail.username=811111122@qq.com
#填写得到的加密密码
spring.mail.password=namtywudfwsrffhd
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.smtp.ssl.enable=true
发送简单邮件使用SimpleMailMessage
@Autowired
JavaMailSenderImpl mailSender;
@Test
public void contextLoads() {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setSubject("test mail subject");
simpleMailMessage.setText("test mail text");
simpleMailMessage.setTo("[email protected]");
simpleMailMessage.setFrom("[email protected]");
mailSender.send(simpleMailMessage);
}
想要发送内容丰富的邮件,使用MimeMessage
@Autowired
JavaMailSenderImpl mailSender;
@Test
public void test2() throws MessagingException {
MimeMessage mimeMessage = mailSender.createMimeMessage();
//有上传文件 true
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setSubject("test mimeMessage");
mimeMessageHelper.setText("test mimeMessage");
mimeMessageHelper.setTo("[email protected]");
mimeMessageHelper.setFrom("[email protected]");
//内容使用html true
mimeMessageHelper.setText("<b style='color:red'>test mimeMessage</b>",true);
mimeMessageHelper.addAttachment("1.png", new File("D:\\1.png"));
mailSender.send(mimeMessage);
}