VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 异步、邮件、定时任务

14. 异步、邮件、定时任务

14.1 异步任务

编写一个业务测试类

文件路径:com--dzj--service--AsynService.java


	
 
@Service
 
public class AsynService {
 
 
 
@Async //告诉spring这是一个异步的方法
 
public void hello(){
 
try {
 
Thread.sleep(3000);
 
} catch (InterruptedException e) {
 
e.printStackTrace();
 
}
 
System.out.println("数据正在处理...");
 
}
 
}

在主启动器类上开启异步注解功能


	
 
@EnableAsync //开启异步注解功能
 
@SpringBootApplication

编写测试接口


	
 
@RestController
 
public class AsynController {
 
 
 
@Autowired
 
AsynService asynService;
 
 
 
@RequestMapping("/hello")
 
public String hello(){
 
asynService.hello();//停止三秒才执行,页面转圈~
 
return "OK";
 
}
 
}

14.2 邮件任务

导入相关依赖


	
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-mail</artifactId>
 
</dependency>

在邮箱设置中开启POP3/SMTP服务

点击我已发送,获得授权码

编写相关配置文件

application.yaml


	
 
spring:
 
mail:
 
username: aadzj@qq.com
 
password: #填写上面的授权码作为密码
 
host: smtp.qq.com
 
properties:
 
mail:
 
smtp:
 
ssl:
 
enable: true # 开启加密验证

在测试类中测试邮件发送


	
 
package com.dzj;
 
 
 
import org.junit.jupiter.api.Test;
 
import org.springframework.beans.factory.annotation.Autowired;
 
import org.springframework.boot.test.context.SpringBootTest;
 
import org.springframework.mail.SimpleMailMessage;
 
import org.springframework.mail.javamail.JavaMailSender;
 
import org.springframework.mail.javamail.MimeMessageHelper;
 
 
 
import javax.mail.MessagingException;
 
import javax.mail.internet.MimeMessage;
 
import java.io.File;
 
 
 
@SpringBootTest
 
class Springboot09AsynchronousApplicationTests {
 
 
 
@Autowired
 
JavaMailSender mailSender;
 
 
 
@Test
 
void contextLoads() {
 
 
 
//一个简单邮件的发送
 
SimpleMailMessage mailMessage = new SimpleMailMessage();
 
mailMessage.setSubject("支付宝到账80万元"); //邮件主题
 
mailMessage.setText("项目收入"); //邮件正文
 
mailMessage.setTo("aadzj@qq.com"); //收件人
 
mailMessage.setFrom("aadzj@qq.com"); //发件人
 
mailSender.send(mailMessage);
 
}
 
 
 
@Test
 
void contextLoads2() throws MessagingException {
 
//一个复杂邮件的发送,组装
 
MimeMessage mimeMessage = mailSender.createMimeMessage();
 
//正文
 
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
 
helper.setSubject("支付宝到账100万元"); //邮件主题
 
helper.setText("<p style='color:red'>工资收入</p>",true); //邮件正文
 
//附件
 
helper.addAttachment("1.jpg",new File("E:\\Good Study\\dengzj.jpg"));
 
helper.addAttachment("2.jpg",new File("E:\\Good Study\\dengzj.jpg"));
 
helper.setTo("aadzj@qq.com"); //收件人
 
helper.setFrom("aadzj@qq.com"); //发件人
 
mailSender.send(mimeMessage);
 
}
 
 
 
}

运行测试!

14.3 定时任务

文件路径:com--dzj--service--ScheduledService.java

编写业务测试类


	
 
package com.dzj.service;
 
 
 
import org.springframework.beans.factory.annotation.Autowired;
 
import org.springframework.mail.SimpleMailMessage;
 
import org.springframework.mail.javamail.JavaMailSender;
 
import org.springframework.scheduling.annotation.Scheduled;
 
import org.springframework.stereotype.Service;
 
 
 
@Service
 
public class ScheduledSercvice {
 
 
 
@Autowired
 
JavaMailSender mailSender;
 
/*
 
在一个特定的时间执行这个方法
 
cron 表达式~ 秒 分 时 日 月 周几
 
cron="10 20 10 * * ?" 每天的10点20分10秒 执行一次
 
cron="10 0/5 10,18 * * ?" 每天10点和18点,从第零分钟开始,每隔五分钟,第10秒执行一次
 
cron="0 15 10 ? * 1-6" 每个月的周一到周六 10点15分执行一次
 
cron="0/2 * * * * ?" 每隔两秒执行一次
 
*/
 
 
 
@Scheduled(cron="0/10 * * * * ?")
 
public void hello(){
 
System.out.println("你被执行了。。。");
 
}
 
 
 
@Scheduled(cron="0/10 * * * * ?")
 
public void sendMail(){
 
//一个简单邮件的发送
 
SimpleMailMessage mailMessage = new SimpleMailMessage();
 
mailMessage.setSubject("支付宝到账80万元");
 
mailMessage.setText("项目收入");
 
mailMessage.setTo("aadzj@qq.com");
 
mailMessage.setFrom("aadzj@qq.com");
 
mailSender.send(mailMessage);
 
System.out.println("邮件已发送");
 
}
 
}

在主启动器类上开启定时注解功能


	
 
@EnableScheduling //开启定时注解功能
 
@SpringBootApplication

运行测试!

本文来自博客园,作者:小公羊,转载请注明原文链接:https://www.cnblogs.com/aadzj/p/15636856.html



相关教程