Springboot中异步、定时、邮件任务的示例分析
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍Springboot中异步、定时、邮件任务的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、异步任务1、编写一个类AsyncService异步处理还是
千家信息网最后更新 2026年11月03日Springboot中异步、定时、邮件任务的示例分析1、编写一个类AsyncService
这篇文章主要介绍Springboot中异步、定时、邮件任务的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一、异步任务
1、编写一个类AsyncService
异步处理还是非常常用的,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务。
package com.rk.service;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Service;@Servicepublic class AsyncService { public void hello(){ try { System.out.println("数据处理中~"); Thread.sleep(3000);//停止三秒 } catch (InterruptedException e) { e.printStackTrace(); } }}2、编写一个AsyncController类
package com.rk.controller;import com.rk.service.AsyncService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class AsyncController { @Autowired AsyncService asyncService; @GetMapping("/hello") public String hello(){ asyncService.hello(); return "success"; }}现在启动项目进行测试,三秒后才会出现success,现在还不是异步
3、开启异步
@Async//告诉spring这是一个异步方法 public void hello(){ try { System.out.println("数据处理中~"); Thread.sleep(3000);//停止三秒 } catch (InterruptedException e) { e.printStackTrace(); } }@EnableAsync//开启异步注解功能@SpringBootApplicationpublic class Springboot09TestApplication { public static void main(String[] args) { SpringApplication.run(Springboot09TestApplication.class, args); }}二、邮件任务
1、引入依赖
org.springframework.boot spring-boot-starter-mail
2、配置mail
#用户名spring.mail.username=1624603357@qq.com#密码spring.mail.password=yblyxhvmnsurbbci#发送邮件服务器spring.mail.host=smtp.qq.com#开启加密验证 sslspring.mail.properties.mail.smtp.ssl.enable=true
3、测试
简单邮件
@Autowired JavaMailSenderImpl mailSender; @Test void contextLoads() { SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setSubject("你好,rk");//邮件标题 mailMessage.setText("测试邮件");//邮件内柔 mailMessage.setTo("r1624603357@126.com");//收件人邮箱 mailMessage.setFrom("1624603357@qq.com");//发件人邮箱 mailSender.send(mailMessage); }复杂邮件
@Test void contextLoads2() throws MessagingException { //一个复杂的邮件 MimeMessage mimeMessage = mailSender.createMimeMessage(); //组装 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); //正文 helper.setSubject("你好,rk"); helper.setText("测试邮件
",true); //附件 helper.addAttachment("1.png",new File("D:\\QLDownloadGame\\2\\1.png")); helper.addAttachment("rk.docx",new File("E:\\桌面\\rk.docx")); // 发/收件人 helper.setTo("r1624603357@126.com"); helper.setFrom("1624603357@qq.com"); //发送 mailSender.send(mimeMessage); }三、定时任务
1、编写一个ScheduledService类
@Servicepublic class ScheduledService { //秒 分 时 日 月 周几 //0 * * * * MON-FRI //注意cron表达式的用法; 每天20:28 0秒执行该方法 @Scheduled(cron = "0 28 20 * * 0-7") public void hello(){ System.out.println("现在是20:28"); System.out.println("hello....."); }}项目启动后每天20:28:00执行hello方法
2、添加注解
@EnableAsync//开启异步注解功能@EnableScheduling//开启定时功能注解@SpringBootApplicationpublic class Springboot09TestApplication { public static void main(String[] args) { SpringApplication.run(Springboot09TestApplication.class, args); }}cron表达式练习
/*
【0 0/5 14,18 * * ?】每天14点整和18点整,每隔5分钟执行一次
【0 15 10 ? * 1-6】每个月的周一-周六10:15分执行一次
【0 0 2 ? * 6L】每个月的最后一个周六凌晨2点执行一次
【0 0 2 LW * ?】每个月的最后一个工作日凌晨2点执行一次
【0 0 2-4 ? * 1#1】每个月的第一个周一凌晨2点到4点期间,每个整点都执行一次
*/
以上是"Springboot中异步、定时、邮件任务的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
邮件
任务
注解
处理
测试
功能
方法
示例
分析
复杂
你好
内容
收件人
数据
数据处理
篇文章
表达式
邮箱
项目
成功
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
保险科技 互联网保险
互联网科技网
科技互联网公司装修
网络科技有限互联网
狮子座互联网科技
奇士达互联网科技
深圳艾佳互联网科技
深圳互联网科技怎么样
华中科技有哪些互联网大佬
玖二柒互联网科技公司待遇
中盈科技互联网信息有限公司
福建科技产业互联网发展
洛阳昕诺飞互联网科技有限公司
互联网新科技动漫ppt素材
浙南科技城互联网大厦建设工程
互联网科技公司营业执照怎么办理
同城互联网络科技
互联网的科技体现在哪里
现代科技的标志之一的互联网
腾讯阿里互联网科技
宜安科技 互联网金融
互联网女皇 腾讯科技
互联网科技小额贷款
科技与互联网哪个更好
南平创想时代互联网科技有限公司
伊宁互联网科技做什么的
神州科技互联网有限公司
众联互联网络科技
10位科技互联网大佬