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

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

系列文章目录


a0320d933d424cdaa2094d96f72e319d.png


思维导图



🌟介绍


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

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


🌟必不可少的注解


@EnableScheduling:用于标识启动类开启定时任务。

@Component:用于标识定时任务类,让Spring扫描其为组件。

@Scheduled用户标识在定时任务方法上,配置定时的规则。


🌟入门案例


启动类添加@EnableScheduling


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

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


定义定时任务类


  • 定义定时任务类,并标注@Component注解。
  • 定义定时任务方法并标识@Schduled注解,每隔5秒在控制台输出日志。其中@Schedule参数如下


参数 描述
cron 指定一个Cron表达式,用于精确控制任务的执行时间
zone 指定用于解析Cron表达式的时区,默认为服务器的默认时区
fixedDelay 指定任务结束后的延迟时间(毫秒),用于控制下一次任务执行的间隔
fixedDelayString fixedDelay类似,但可以使用字符串表示延迟时间
fixedRate 指定任务开始执行后的间隔时间(毫秒),用于控制连续任务之间的间隔
fixedRateString fixedRate类似,但可以使用字符串表示间隔时间
initialDelay 指定任务首次执行前的延迟时间(毫秒)
initialDelayString initialDelay类似,但可以使用字符串表示延迟时间


有关于Cron表达式的配置可以参考此网址:Cron小工具


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


效果



🌟定时发送邮件


引入相关依赖


<!-- Spring Mail依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>


126邮箱配置


1.开启POP3/SMTP服务



8cb7b8eb7e8552b45cb978a0f2bba040_9ec989129e7c4467a7607f8f7aefad12.png


2.点击开启后,会发送短信获取授权码,注意要保存授权码只显示一次!!!!



修改项目配置文件


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


编写定时任务方法


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

@Component
public 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定时任务的方法到此就结束啦,希望对阅读本文的你们有帮助哦。同时有疑问可以在评论区留言,谢谢大家!


目录
相关文章
|
7月前
|
安全 JavaScript Java
SpringBoot实现定时发送邮件
SpringBoot实现定时发送邮件
87 0
|
7月前
|
Java 数据库
SpringBoot定时将数据库表生成Excel表格
SpringBoot定时将数据库表生成Excel表格
108 0
|
7月前
|
Java 调度 流计算
有没有 大佬用 springboot 启动flink 处理 ,发现springboot 加 schedule调度处理会内存占满情况?
有没有 大佬用 springboot 启动flink 处理 ,发现springboot 加 schedule调度处理会内存占满情况?
253 6
|
5月前
|
Java 数据格式 微服务
2024最新首发,全网最全 Spring Boot 学习宝典(附思维导图)
📚 《滚雪球学Spring Boot》是由CSDN博主bug菌创作的全面Spring Boot教程。作者是全栈开发专家,在多个技术社区如CSDN、掘金、InfoQ、51CTO等担任博客专家,并拥有超过20万的全网粉丝。该教程分为入门篇和进阶篇,每篇包含详细的教学步骤,涵盖Spring Boot的基础和高级主题。
359 4
2024最新首发,全网最全 Spring Boot 学习宝典(附思维导图)
|
6月前
|
Java 数据库连接 数据库
实现Spring Boot与MyBatis结合进行数据库历史数据的定时迁移
实现Spring Boot与MyBatis结合进行数据库历史数据的定时迁移
207 2
|
6月前
|
消息中间件 设计模式 Java
SpringBoot+Schedule 定时任务的配置开关
SpringBoot+Schedule 定时任务的配置开关
185 0
SpringBoot+Schedule 定时任务的配置开关
|
7月前
|
Java Spring
Spring boot项目如何发送邮件
Spring boot项目如何发送邮件
53 2
|
7月前
|
Java
Springboot如何发送邮件
Springboot如何发送邮件
|
7月前
|
消息中间件 JSON Java
如何利用springboot + rabbitmq发送邮件?
RabbitMQ相关知识请参考: RabbitMQ消息确认、消息持久化等核心知识总结 - 简书
64 2
|
7月前
|
安全 Java 数据安全/隐私保护
SpringBoot+Email发送邮件
邮件通知是现代应用中常见的一种通信方式,特别是在需要及时反馈、告警或重要事件通知的场景下。Spring Boot提供了简单而强大的邮件发送功能,使得实现邮件通知变得轻而易举。本文将研究如何在Spring Boot中使用JavaMailSender实现邮件发送,以构建一个可靠的通知体系。
257 1
SpringBoot+Email发送邮件
下一篇
DataWorks