SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件

时间:2022-11-24 08:02:44

写在前面
继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用!

3.5.2 任务

3.5.2.1 简述

  • 定时任务是企业应用中常见的操作,如年度报表,缓存报告
  • 市面上流行定时技术有Quartz、Spring Task
  • 相关概念
    • job工作:用于定义具体执行的工作
    • 工作明细JobDetail:用于描述定时工作相关的信息
    • 触发器Trigger:用于描述触发工作的规则,通常使用cron表达式定义调度规则
    • 调度器Scheduler:用于描述工作明细与触发器的对应关系

3.5.2.2 Quartz代码操作(复杂)

  • 创建空项目
  • 添加坐标,如图SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件
  • 定义具体任务,如图SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件
  • 配置Quartz,如图SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件
  • 运行,则可看到每隔5秒执行一次,如图SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件

3.5.2.3 Task代码操作(简单)

  • 项目,用上面的
  • 开启任务定时开关,如图SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件
  • 任务配置及定义,如图SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件

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 代码操作

  • 创建空项目
  • 导入坐标,如图SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件
  • 编写接口,如图SpringBoot中任务是什么/Quartz和SpringTask在Spring Boot中怎么使用/SpringBoot怎么给用户发邮件
  • 编写实现层,如下
@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以及邮件发送方地址