使用SpringBoot中的Schedule定時發(fā)送郵件的方法
思維導圖
介紹
- 基本概念:定時任務從字面不難看出,定時任務意思就是定時處理某種任務。
- 使用場景:比如說定時發(fā)送郵件、消息提醒等等。
- 常見的定時任務:Java.util.TImer、Quartz2、SpringBoot中的Schedule。
本文的主要內容以springboot中的Schedule為例,來帶大家看看如何使用其做定時任務。
必不可少的注解
@EnableScheduling
:用于標識啟動類開啟定時任務。
@Component
:用于標識定時任務類,讓Spring掃描其為組件。
@Scheduled
:用戶標識在定時任務方法上,配置定時的規(guī)則。
入門案例
啟動類添加@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參數(shù)如下
參數(shù) | 描述 |
---|---|
cron | 指定一個Cron表達式,用于精確控制任務的執(zhí)行時間 |
zone | 指定用于解析Cron表達式的時區(qū),默認為服務器的默認時區(qū) |
fixedDelay | 指定任務結束后的延遲時間(毫秒),用于控制下一次任務執(zhí)行的間隔 |
fixedDelayString | 與fixedDelay 類似,但可以使用字符串表示延遲時間 |
fixedRate | 指定任務開始執(zhí)行后的間隔時間(毫秒),用于控制連續(xù)任務之間的間隔 |
fixedRateString | 與fixedRate 類似,但可以使用字符串表示間隔時間 |
initialDelay | 指定任務首次執(zhí)行前的延遲時間(毫秒) |
initialDelayString | 與initialDelay 類似,但可以使用字符串表示延遲時間 |
有關于Cron表達式的配置可以參考此網(wǎng)址:Cron小工具
@Component public class ScheduleService { @Scheduled(fixedRate = 5000) //@Scheduled(fixedDelay = 5000) public void scheduleConsole(){ System.out.println("定時任務要開始了喲?。。。?); } }
效果
定時發(fā)送郵件
引入相關依賴
<!-- Spring Mail依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
126郵箱配置
1.開啟POP3/SMTP服務
2.點擊開啟后,會發(fā)送短信獲取授權碼,注意要保存授權碼只顯示一次!?。?!
修改項目配置文件
spring.mail.host=smtp.126.com spring.mail.username=XXXXXX@126.com spring.mail.password=這里就是你剛剛的授權碼喲!
編寫定時任務方法
在這里就舉一個簡單的發(fā)送驗證碼例子來進行演示。下方類中的定時任務方法用來 每天21:34定時向郵件發(fā)送驗證碼的功能
。
@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; // 發(fā)件人,配置文件中的郵件地址 message.setFrom("xxxxx@126.com"); // 收件人 message.setTo("xxxxx@163.com"); //設置郵件標題 message.setSubject("注冊驗證碼"); // 郵件內容 message.setText("Hello歡迎使用xxx系統(tǒng),您的注冊驗證碼為"+code); mailSender.send(message); System.out.println("郵件發(fā)送已完成哦?。。?); } }
最終效果
最終效果請查看紅框!
寫在最后
有關于SpringBoot中Schedule定時任務的方法到此就結束啦,希望對閱讀本文的你們有幫助哦。同時有疑問可以在評論區(qū)留言,謝謝大家!
以上就是使用SpringBoot中的Schedule定時發(fā)送郵件的方法的詳細內容,更多關于SpringBoot Schedule定時發(fā)送郵件的資料請關注腳本之家其它相關文章!
相關文章
Java如何將BigDecimal類型的值轉成double類型
這篇文章主要給大家介紹了關于Java如何將BigDecimal類型的值轉成double類型的相關資料,需要注意精度損失和范圍限制,使用doubleValue方法進行轉換,并在高精度計算時格外小心,需要的朋友可以參考下2024-12-12如何使用IntelliJ IDEA的HTTP Client進行接口驗證
這篇文章主要介紹了如何使用IntelliJ IDEA的HTTP Client進行接口驗證,本文給大家分享最新完美解決方案,感興趣的朋友跟隨小編一起看看吧2024-06-06Spring-webflux訪問關系型數(shù)據(jù)庫實戰(zhàn)
這篇文章主要為大家介紹了Spring-webflux訪問關系型數(shù)據(jù)庫實戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07Springboot項目的搭建教程(分離出common父依賴)
這篇文章主要介紹了Springboot項目的搭建教程(分離出common父依賴),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01聊聊Springboot2.x的session和cookie有效期
這篇文章主要介紹了Springboot2.x的session和cookie有效期,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09