日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springboot使用定时器及发送邮件

發布時間:2025/4/17 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot使用定时器及发送邮件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、定時器配置

本人springboot版本為2.2.5,不用額外配置pom.xml及applicaiton.properties屬性,直接全注解形式實現,下面用一個簡單的實例演示一下:

/**@Component注解使該類能被spring容器掃描到,并實例化為bean存儲起來;@EnableScheduling注解代表開啟定時器功能 */ @Component @EnableScheduling public class QuartzTask {//@Scheduled注解用在方法上,表示該方法啟動定時器功能,cron代表定時器模式@Scheduled(cron = "*/30 * * * * *")public void quartzTest(){System.out.println("定時器啟動成功!");} }

簡單幾個注解就能實現定時器功能,非常方便。
附上cron常見語法及配置方式:

Cron表達式使用格式: Seconds Minutes Hours DayofMonth Month DayofWeek [Year]秒 分 時 天 月 周 [年]每個符號代表的含義: 1.*:匹配該域的任意值;如*用在分所在的域,表示每分鐘都會觸發事件。 2.?:匹配該域的任意值。 3.-:匹配一個特定的范圍值;如時所在的域的值是10-12,表示10、11、12點的時候會觸發事件。 4.,:匹配多個指定的值;如周所在的域的值是2,4,6,表示在周一、周三、周五就會觸發事件(1表示周日,2表示周一,3表示周二,以此類推,7表示周六)。 5./:左邊是開始觸發時間,右邊是每隔固定時間觸發一次事件,如秒所在的域的值是5/15,表示5秒、20秒、35秒、50秒的時候都觸發一次事件。 6.L:last,最后的意思,如果是用在天這個域,表示月的最后一天,如果是用在周所在的域,如6L,表示某個月最后一個周五。(外國周日是星耀日,周一是月耀日,一周的開始是周日,所以1L=周日,6L=周五。) 7.W:weekday,工作日的意思。如天所在的域的值是15W,表示本月15日最近的工作日,如果15日是周六,觸發器將觸發上14日周五。如果15日是周日,觸發器將觸發16日周一。如果15日不是周六或周日,而是周一至周五的某一個,那么它就在15日當天觸發事件。 8.#:用來指定每個月的第幾個星期幾,如6#3表示某個月的第三個星期五。實用的例子 表達式 含義 “0 0 12 * * ?” 每天12:00觸發事件 “0 15 10 ? * *” 每天10:15觸發事件 “0 15 10 * * ?” 每天10:15觸發事件 “0 15 10 * * ? *” 每天10:15觸發事件 “0 15 10 * * ? 2005″ 2005年的每天10:15觸發事件 “0 * 14 * * ?” 每天14點開始觸發,每分鐘觸發一次,14:59分結束 “0 0/5 14 * * ?” 每天14點開始觸發到14:59分結束的每5分鐘觸發一次事件 “0 0/5 14,18 * * ?” 每天14點開始到14:59期間和18點到18:59期間的每5分鐘觸發一次事件 “0 0-5 14 * * ?” 每天14點到14:05期間的每1分鐘觸發一次事件 “0 10,44 14 ? 3 WED” 每年3月的星期三的14:10和14:44觸發一次事件 “0 15 10 ? * MON-FRI” 周一至周五的10:15觸發一次事件 “0 15 10 15 * ?” 每月15日10:15觸發一次事件 “0 15 10 L * ?” 每月最后一日的10:15觸發一次事件 “0 15 10 ? * 6L” 每月的最后一個星期五10:15觸發一次事件 “0 15 10 ? * 6L 2002-2005″ 2002年至2005年的每月的最后一個星期五10:15觸發一次事件 “0 15 10 ? * 6#3″ 每月的第三個星期五10:15觸發一次事件
2、發送郵件配置

1)配置pom依賴:

<!-- 配置郵件 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency>

2)配置application.properties文件:

#郵件的配置 spring.mail.host=smtp.qq.com spring.mail.username=發件人的郵件 spring.mail.password=密碼,注意不是郵箱的登錄密碼,AUTH。 spring.mail.default-encoding=UTF-8 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true

3)編寫郵件工具類:

//@Component加上該注解,spring容器可以掃描到并注入到容器中 @Component public class MailSendUtil {//自動裝配JavaMailSender對象,該類在導入的依賴中@Autowiredprivate JavaMailSender mailSender;//自動讀取application.properties文件中的spring.mail.username值并賦予from變量。@Value("${spring.mail.username}")private String from;public void sendMail(){try {MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);//設置發件人mimeMessageHelper.setFrom(from);//設置收件人mimeMessageHelper.setTo("1234569@qq.com");//設置郵件標題mimeMessageHelper.setSubject("今日股市分析:");//設置郵件正文mimeMessageHelper.setText("今天是6月19日,今天股市大漲,中興漲幅超過5%");//發送郵件mailSender.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}}

4)定時器發送郵件:

@Component @EnableScheduling public class QuartzTask {@Autowiredprivate MailSendUtil mailSendUtil;//每隔30秒發送一次郵件@Scheduled(cron = "*/30 * * * * *")public void quartzTest(){mailSendUtil.sendMail();System.out.println("發送郵件成功!");} }

以上就是一個簡單的通過定時器發送郵件的小例子雛形,淺顯易懂,有時學習一樣技術或者一個知識點并非要先把它想得太復雜,先從最簡單的入手,實現了功能,再根據實際需求去深入研究其他高層次的應用,愿與你我共勉~~~~

原博文地址:http://www.54gwz.cn/article/1592551192

總結

以上是生活随笔為你收集整理的springboot使用定时器及发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。