写在前面:
继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用!
3.5.2 任务
3.5.2.1 简述
- 定时任务是企业应用中常见的操作,如年度报表,缓存报告
- 市面上流行定时技术有Quartz、Spring Task
- 相关概念
- job工作:用于定义具体执行的工作
- 工作明细JobDetail:用于描述定时工作相关的信息
- 触发器Trigger:用于描述触发工作的规则,通常使用cron表达式定义调度规则
- 调度器Scheduler:用于描述工作明细与触发器的对应关系
3.5.2.2 Quartz代码操作(复杂)
- 创建空项目
- 添加坐标,如图
- 定义具体任务,如图
- 配置Quartz,如图
- 运行,则可看到每隔5秒执行一次,如图
3.5.2.3 Task代码操作(简单)
- 项目,用上面的
- 开启任务定时开关,如图
- 任务配置及定义,如图
3.5.3 邮件
3.5.3.1 简述
- SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议
- POP3(Post Office Protocol-Version 3):用于接受电子邮件的标准协议
- IMAP(Internal Mail Access Protocol):互联网消息协议,是POP3的替代协议
3.5.3.2 代码操作
- 创建空项目
- 导入坐标,如图
- 编写接口,如图
- 编写实现层,如下
@Service
public class SendMailMessageServiceImpl implements sendMailMessageService {
@Autowired
private JavaMailSender javaMailSender;
// 邮件发送方 自己选择邮箱地址
private String sendPerson = "xxxx@qq.com";
// 邮件接收方 自己选择邮箱地址
private String acceptPerson = "xxx@163.com";
// 邮件标题
private String subject = "测试邮件标题";
// 邮件正文
private String context = "邮件正文";
@Override
public void sendMailMessage() {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(sendPerson + "(小甜甜)");
simpleMailMessage.setTo(acceptPerson);
simpleMailMessage.setSubject(subject);
simpleMailMessage.setText(context);
javaMailSender.send(simpleMailMessage);
}
- 配置yml,如下
spring:
mail:
host: smtp.qq.com
# 这里使用QQ邮箱来发送
username: xxxxx@qq.com
# QQ邮箱设置-账户-开启SMTP后得到验证码(需用手机发验证码)
password: xxxxxxx
3.5.3.3 代码操作(包括附件)
- 使用项目,同上
- 坐标,同上
- 接口同上
- 实现类,如下
@Service
public class SendMailMessageServiceImpl2 implements sendMailMessageService {
@Autowired
private JavaMailSender javaMailSender;
// 邮件发送方
private String sendPerson = "xxxx@qq.com";
// 邮件接收方
private String acceptPerson = "xxxx@163.com";
// 邮件标题
private String subject = "测试邮件标题";
// 邮件正文
private String context = "<a href = ‘https://www.baidu.com’>点开有惊喜</a>";
@Override
public void sendMailMessage() {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(message,true);
messageHelper.setFrom(sendPerson + "(小甜甜)");
messageHelper.setTo(acceptPerson);
messageHelper.setSubject(subject);
messageHelper.setText(context,true);
// 添加附件
File file = new File("D:\\Javaprogram\\javaLittlePractition\\SpringBoot\\server.log");
messageHelper.addAttachment(file.getName(),file);
javaMailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- yml配置同上
注:
若想更换邮件发送方,必须在yml中更改host、username和password以及邮件发送方地址