?????作者名稱:DaenCode
??作者簡(jiǎn)介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗(yàn)、生活。
??人生感悟:嘗盡人生百味,方知世間冷暖。
??所屬專欄:SpringBoot實(shí)戰(zhàn)
系列文章目錄
標(biāo)題 |
---|
一文帶你學(xué)會(huì)使用SpringBoot+Avue實(shí)現(xiàn)短信通知功能(含重要文件代碼) |
一張思維導(dǎo)圖帶你學(xué)會(huì)Springboot創(chuàng)建全局異常、自定義異常 |
一張思維導(dǎo)圖帶你打通SpringBoot自定義攔截器的思路 |
28個(gè)SpringBoot項(xiàng)目中常用注解,日常開(kāi)發(fā)、求職面試不再懵圈 |
一張思維導(dǎo)圖帶你學(xué)會(huì)SpringBoot、Vue前后端分離項(xiàng)目線上部署 |
思維導(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)類開(kāi)啟定時(shí)任務(wù)。@Component
:用于標(biāo)識(shí)定時(shí)任務(wù)類,讓Spring掃描其為組件。@Scheduled
:用戶標(biāo)識(shí)在定時(shí)任務(wù)方法上,配置定時(shí)的規(guī)則。
??入門案例
啟動(dòng)類添加@EnableScheduling
啟動(dòng)類添加@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ù)類
- 定義定時(shí)任務(wù)類,并標(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í)行的間隔 |
fixedDelayString |
與fixedDelay 類似,但可以使用字符串表示延遲時(shí)間 |
fixedRate |
指定任務(wù)開(kāi)始執(zhí)行后的間隔時(shí)間(毫秒),用于控制連續(xù)任務(wù)之間的間隔 |
fixedRateString |
與fixedRate 類似,但可以使用字符串表示間隔時(shí)間 |
initialDelay |
指定任務(wù)首次執(zhí)行前的延遲時(shí)間(毫秒) |
initialDelayString |
與initialDelay 類似,但可以使用字符串表示延遲時(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)依賴
<!-- Spring Mail依賴 -->
<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)碼喲!
編寫定時(shí)任務(wù)方法
在這里就舉一個(gè)簡(jiǎn)單的發(fā)送驗(yàn)證碼例子來(lái)進(jìn)行演示。下方類中的定時(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)查看紅框!
??寫在最后
有關(guān)于SpringBoot中Schedule定時(shí)任務(wù)的方法到此就結(jié)束啦,希望對(duì)閱讀本文的你們有幫助哦。同時(shí)有疑問(wèn)可以在評(píng)論區(qū)留言,謝謝大家!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-632843.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-632843.html
到了這里,關(guān)于一張思維導(dǎo)圖帶你學(xué)會(huì)使用SpringBoot中的Schedule定時(shí)發(fā)送郵件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!