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


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

    3.5.2 任务

    3.5.2.1 简述
    • 定时任务是企业应用中常见的操作,如年度报表,缓存报告
    • 市面上流行定时技术有Quartz、Spring Task
    • 相关概念
      • job工作:用于定义具体执行的工作
      • 工作明细JobDetail:用于描述定时工作相关的信息
      • 触发器Trigger:用于描述触发工作的规则,通常使用cron表达式定义调度规则
      • 调度器Scheduler:用于描述工作明细与触发器的对应关系
    3.5.2.2 Quartz代码操作(复杂)
    • 创建空项目
    • 添加坐标,如图![[Pasted image 20221010165102.png]]
    • 定义具体任务,如图![[Pasted image 20221010165145.png]]
    • 配置Quartz,如图![[Pasted image 20221010165215.png]]
    • 运行,则可看到每隔5秒执行一次,如图![[Pasted image 20221010165254.png]]
    3.5.2.3 Task代码操作(简单)
    • 项目,用上面的
    • 开启任务定时开关,如图![[Pasted image 20221010170011.png]]
    • 任务配置及定义,如图![[Pasted image 20221010170033.png]]

    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 代码操作
    • 创建空项目
    • 导入坐标,如图![[Pasted image 20221010193050.png]]
    • 编写接口,如图![[Pasted image 20221010193136.png]]
    • 编写实现层,如下
    @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);  
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 配置yml,如下
    spring:  
      mail:  
        host: smtp.qq.com  
        # 这里使用QQ邮箱来发送
        username: xxxxx@qq.com  
        # QQ邮箱设置-账户-开启SMTP后得到验证码(需用手机发验证码)
        password: xxxxxxx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    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 = "点开有惊喜";  
        @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();  
            }  
        }  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • yml配置同上
      注:
      若想更换邮件发送方,必须在yml中更改host、username和password以及邮件发送方地址
  • 相关阅读:
    2022-01-08 如何高质量完成需求开发
    【大数据实训】基于Hadoop的2019年11月至2020年2月宁波天气数据分析(五)
    【JAVA基础——JAVA虚拟机JVM】
    Linux Commands Interview questions
    计算机毕业设计之java+ssm基于web的平面设计课程在线学习平台系统
    m低信噪比下GPS信号的捕获算法研究,分别使用matlab和FPGA对算法进行仿真和硬件实现
    JavaSSM笔记(二)SpringMvc基础
    安装Zookeeper以及Kafka(CentOS7)
    MMWHS数据集
    java Python+Django的大学生提问论坛系统-在线答疑系统
  • 原文地址:https://blog.csdn.net/qq_40903378/article/details/127964938