返回顶部
首页 > 资讯 > 后端开发 > JAVA >一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件
  • 361
分享到

一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件

springboot后端java 2023-08-16 15:08:05 361人浏览 泡泡鱼
摘要

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Spr

🧑‍💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:SpringBoot实战

系列文章目录

标题
一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码)
一张思维导图带你学会Springboot创建全局异常、自定义异常
一张思维导图带你打通SpringBoot自定义拦截器的思路
28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈
一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署

在这里插入图片描述


思维导图

在这里插入图片描述

🌟介绍

  • 基本概念:定时任务从字面不难看出,定时任务意思就是定时处理某种任务。
  • 使用场景:比如说定时发送邮件、消息提醒等等。
  • 常见的定时任务:Java.util.TImer、Quartz2、SpringBoot中的Schedule。

本文的主要内容以springboot中的Schedule为例,来带大家看看如何使用其做定时任务。

🌟必不可少的注解

@EnableScheduling:用于标识启动类开启定时任务。
@Component:用于标识定时任务类,让Spring扫描其为组件。
@Scheduled:用户标识在定时任务方法上,配置定时的规则。

🌟入门案例

启动类添加@EnableScheduling

启动类添加@EnableScheduling负责开启定时任务功能。

@SpringBootApplication@MapperScan("com.shoanjen.Redis.mapper")@EnableSchedulingpublic class RedisApplication {public static void main(String[] args) {SpringApplication.run(RedisApplication.class, args);}}

定义定时任务类

  • 定义定时任务类,并标注@Component注解。
  • 定义定时任务方法并标识@Schduled注解,每隔5秒在控制台输出日志。其中@Schedule参数如下
参数描述
cron指定一个Cron表达式,用于精确控制任务的执行时间
zone指定用于解析Cron表达式的时区,默认为服务器的默认时区
fixedDelay指定任务结束后的延迟时间(毫秒),用于控制下一次任务执行的间隔
fixedDelayStringfixedDelay类似,但可以使用字符串表示延迟时间
fixedRate指定任务开始执行后的间隔时间(毫秒),用于控制连续任务之间的间隔
fixedRateStringfixedRate类似,但可以使用字符串表示间隔时间
initialDelay指定任务首次执行前的延迟时间(毫秒)
initialDelayStringinitialDelay类似,但可以使用字符串表示延迟时间

有关于Cron表达式的配置可以参考此网址:Cron小工具
在这里插入图片描述

@Componentpublic class ScheduleService {    @Scheduled(fixedRate = 5000)    //@Scheduled(fixedDelay = 5000)    public void scheduleConsole(){        System.out.println("定时任务要开始了哟!!!!");    }}

效果

在这里插入图片描述

🌟定时发送邮件

引入相关依赖

    org.springframework.boot    spring-boot-starter-mail

126邮箱配置

开启POP3/SMTP服务
在这里插入图片描述
在这里插入图片描述
2.点击开启后,会发送短信获取授权码,注意要保存授权码只显示一次!!!!
在这里插入图片描述

修改项目配置文件

spring.mail.host=smtp.126.comspring.mail.username=XXXXXX@126.comspring.mail.passWord=这里就是你刚刚的授权码哟!

编写定时任务方法

在这里就举一个简单的发送验证码例子来进行演示。下方类中的定时任务方法用来每天21:34定时向邮件发送验证码的功能

@Componentpublic class ScheduleService {    @Autowired    private JavaMailSender mailSender;    @Scheduled(cron = "0 34 21 * * ?")    public void scheduleMailTo(){        SimpleMailMessage message = new SimpleMailMessage();        //随机验证码        Random random=new Random();        int code=random.nextInt(9999)+1;        // 发件人,配置文件中的邮件地址        message.setFrom("xxxxx@126.com");        // 收件人        message.setTo("xxxxx@163.com");        //设置邮件标题        message.setSubject("注册验证码");        // 邮件内容        message.setText("Hello欢迎使用xxx系统,您的注册验证码为"+code);        mailSender.send(message);        System.out.println("邮件发送已完成哦!!!");    }}

最终效果

最终效果请查看红框!
在这里插入图片描述

🌟写在最后

有关于SpringBoot中Schedule定时任务的方法到此就结束啦,希望对阅读本文的你们有帮助哦。同时有疑问可以在评论区留言,谢谢大家!


请添加图片描述

来源地址:https://blog.csdn.net/2302_79094329/article/details/132134671

--结束END--

本文标题: 一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件

本文链接: https://www.lsjlt.com/news/371603.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作