• 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以及邮件发送方地址
  • 相关阅读:
    Java基础面试题精选:深入探讨哈希表、链表和接口等
    锚点 smooth-scrolljs库 平滑滚动 / scrollIntoView
    Java 实习生(月薪 3k-5k 水平)应具备哪些知识、能力?给学弟学妹们支招
    NR 物理层编码 S2 - 线性码
    重装系统后电脑图片显示不出来怎么办
    Cesium冷知识:判断cesium是否使用webgl2
    手把手教你搭建 Ceph+JuiceFS
    Kotlin设计模式:享元模式(Flyweight Pattern)
    Pytorch: Torchvision、torchaudio 和 torch的关系
    Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
  • 原文地址:https://blog.csdn.net/qq_40903378/article/details/127964938