欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用SpringBoot中的Schedule定時(shí)發(fā)送郵件的方法

 更新時(shí)間:2023年08月08日 09:28:58   作者:DaenCode  
在SpringBoot中,你可以使用@Scheduled注解來(lái)創(chuàng)建定時(shí)任務(wù),@Scheduled注解可以應(yīng)用于方法上,表示這個(gè)方法是一個(gè)定時(shí)任務(wù),可以根據(jù)指定的時(shí)間間隔或固定時(shí)間執(zhí)行,本文就給大家介紹一下如何使用SpringBoot中的Schedule定時(shí)發(fā)送郵件,需要的朋友可以參考下

思維導(dǎo)圖

介紹

  • 基本概念:定時(shí)任務(wù)從字面不難看出,定時(shí)任務(wù)意思就是定時(shí)處理某種任務(wù)。
  • 使用場(chǎng)景:比如說(shuō)定時(shí)發(fā)送郵件、消息提醒等等。
  • 常見(jiàn)的定時(shí)任務(wù):Java.util.TImer、Quartz2、SpringBoot中的Schedule。

本文的主要內(nèi)容以springboot中的Schedule為例,來(lái)帶大家看看如何使用其做定時(shí)任務(wù)。

必不可少的注解

@EnableScheduling :用于標(biāo)識(shí)啟動(dòng)類(lèi)開(kāi)啟定時(shí)任務(wù)。

@Component :用于標(biāo)識(shí)定時(shí)任務(wù)類(lèi),讓Spring掃描其為組件。

@Scheduled :用戶(hù)標(biāo)識(shí)在定時(shí)任務(wù)方法上,配置定時(shí)的規(guī)則。

入門(mén)案例

啟動(dòng)類(lèi)添加@EnableScheduling

啟動(dòng)類(lèi)添加@EnableScheduling負(fù)責(zé)開(kāi)啟定時(shí)任務(wù)功能。

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

定義定時(shí)任務(wù)類(lèi)

定義定時(shí)任務(wù)類(lèi),并標(biāo)注@Component注解。

定義定時(shí)任務(wù)方法并標(biāo)識(shí)@Schduled注解,每隔5秒在控制臺(tái)輸出日志。其中@Schedule參數(shù)如下

參數(shù)描述
cron指定一個(gè)Cron表達(dá)式,用于精確控制任務(wù)的執(zhí)行時(shí)間
zone指定用于解析Cron表達(dá)式的時(shí)區(qū),默認(rèn)為服務(wù)器的默認(rèn)時(shí)區(qū)
fixedDelay指定任務(wù)結(jié)束后的延遲時(shí)間(毫秒),用于控制下一次任務(wù)執(zhí)行的間隔
fixedDelayStringfixedDelay類(lèi)似,但可以使用字符串表示延遲時(shí)間
fixedRate指定任務(wù)開(kāi)始執(zhí)行后的間隔時(shí)間(毫秒),用于控制連續(xù)任務(wù)之間的間隔
fixedRateStringfixedRate類(lèi)似,但可以使用字符串表示間隔時(shí)間
initialDelay指定任務(wù)首次執(zhí)行前的延遲時(shí)間(毫秒)
initialDelayStringinitialDelay類(lèi)似,但可以使用字符串表示延遲時(shí)間

有關(guān)于Cron表達(dá)式的配置可以參考此網(wǎng)址:Cron小工具

在這里插入圖片描述

@Component
public class ScheduleService {
    @Scheduled(fixedRate = 5000)
    //@Scheduled(fixedDelay = 5000)
    public void scheduleConsole(){
        System.out.println("定時(shí)任務(wù)要開(kāi)始了喲?。。?!");
    }
}

效果

在這里插入圖片描述

定時(shí)發(fā)送郵件

引入相關(guān)依賴(lài)

<!-- Spring Mail依賴(lài) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

126郵箱配置

1.開(kāi)啟POP3/SMTP服務(wù)

在這里插入圖片描述

在這里插入圖片描述

2.點(diǎn)擊開(kāi)啟后,會(huì)發(fā)送短信獲取授權(quán)碼,注意要保存授權(quán)碼只顯示一次?。。?!

在這里插入圖片描述

修改項(xiàng)目配置文件

spring.mail.host=smtp.126.com
spring.mail.username=XXXXXX@126.com
spring.mail.password=這里就是你剛剛的授權(quán)碼喲!

編寫(xiě)定時(shí)任務(wù)方法

在這里就舉一個(gè)簡(jiǎn)單的發(fā)送驗(yàn)證碼例子來(lái)進(jìn)行演示。下方類(lèi)中的定時(shí)任務(wù)方法用來(lái) 每天21:34定時(shí)向郵件發(fā)送驗(yàn)證碼的功能

@Component
public class ScheduleService {
    @Autowired
    private JavaMailSender mailSender;
    @Scheduled(cron = "0 34 21 * * ?")
    public void scheduleMailTo(){
        SimpleMailMessage message = new SimpleMailMessage();
        //隨機(jī)驗(yàn)證碼
        Random random=new Random();
        int code=random.nextInt(9999)+1;
        // 發(fā)件人,配置文件中的郵件地址
        message.setFrom("xxxxx@126.com");
        // 收件人
        message.setTo("xxxxx@163.com");
        //設(shè)置郵件標(biāo)題
        message.setSubject("注冊(cè)驗(yàn)證碼");
        // 郵件內(nèi)容
        message.setText("Hello歡迎使用xxx系統(tǒng),您的注冊(cè)驗(yàn)證碼為"+code);
        mailSender.send(message);
        System.out.println("郵件發(fā)送已完成哦?。?!");
    }
}

最終效果

最終效果請(qǐng)查看紅框!

在這里插入圖片描述

寫(xiě)在最后

有關(guān)于SpringBoot中Schedule定時(shí)任務(wù)的方法到此就結(jié)束啦,希望對(duì)閱讀本文的你們有幫助哦。同時(shí)有疑問(wèn)可以在評(píng)論區(qū)留言,謝謝大家!

以上就是使用SpringBoot中的Schedule定時(shí)發(fā)送郵件的方法的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot Schedule定時(shí)發(fā)送郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java如何將BigDecimal類(lèi)型的值轉(zhuǎn)成double類(lèi)型

    Java如何將BigDecimal類(lèi)型的值轉(zhuǎn)成double類(lèi)型

    這篇文章主要給大家介紹了關(guān)于Java如何將BigDecimal類(lèi)型的值轉(zhuǎn)成double類(lèi)型的相關(guān)資料,需要注意精度損失和范圍限制,使用doubleValue方法進(jìn)行轉(zhuǎn)換,并在高精度計(jì)算時(shí)格外小心,需要的朋友可以參考下
    2024-12-12
  • 如何使用IntelliJ IDEA的HTTP Client進(jìn)行接口驗(yàn)證

    如何使用IntelliJ IDEA的HTTP Client進(jìn)行接口驗(yàn)證

    這篇文章主要介紹了如何使用IntelliJ IDEA的HTTP Client進(jìn)行接口驗(yàn)證,本文給大家分享最新完美解決方案,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • java 中String.equals和==的比較

    java 中String.equals和==的比較

    這篇文章主要介紹了java 中String.equals和==的比較的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • 關(guān)于JDK8中的字符串拼接示例詳解

    關(guān)于JDK8中的字符串拼接示例詳解

    字符串拼接問(wèn)題應(yīng)該是每個(gè)Java程序員都熟知的事情了,幾乎每個(gè)Java程序員都讀過(guò)關(guān)于StringBuffer/StringBuilder來(lái)拼接字符串。下面這篇文章主要給大家介紹了關(guān)于JDK8中的字符串拼接的相關(guān)資料,需要的朋友可以參考下。
    2018-04-04
  • Java 8 Stream流強(qiáng)大的原理

    Java 8 Stream流強(qiáng)大的原理

    這篇文章主要介紹了Java 8 Stream流強(qiáng)大的原理,Java 8 API添加了一個(gè)新的抽象稱(chēng)為流Stream,可以讓你以一種聲明的方式處理數(shù)據(jù)。本文會(huì)對(duì)Stream的實(shí)現(xiàn)原理進(jìn)行剖析,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2021-12-12
  • Spring中的循環(huán)依賴(lài)詳解

    Spring中的循環(huán)依賴(lài)詳解

    這篇文章主要介紹了Spring中的循環(huán)依賴(lài)詳解,  Spring 框架是一個(gè)流行的Java應(yīng)用程序框架,它提供了許多強(qiáng)大的功能,如依賴(lài)注入和面向切面編程,然而在使用 Spring 框架時(shí),我們可能會(huì)遇到循環(huán)依賴(lài)的問(wèn)題,需要的朋友可以參考下
    2023-09-09
  • Spring-webflux訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)實(shí)戰(zhàn)

    Spring-webflux訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)實(shí)戰(zhàn)

    這篇文章主要為大家介紹了Spring-webflux訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 基于spring boot 命令行啟動(dòng)的一些坑

    基于spring boot 命令行啟動(dòng)的一些坑

    這篇文章主要介紹了spring boot 命令行啟動(dòng)的一些坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Springboot項(xiàng)目的搭建教程(分離出common父依賴(lài))

    Springboot項(xiàng)目的搭建教程(分離出common父依賴(lài))

    這篇文章主要介紹了Springboot項(xiàng)目的搭建教程(分離出common父依賴(lài)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 聊聊Springboot2.x的session和cookie有效期

    聊聊Springboot2.x的session和cookie有效期

    這篇文章主要介紹了Springboot2.x的session和cookie有效期,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論