Springboot中异步、定时、邮件任务的示例分析
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍Springboot中异步、定时、邮件任务的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、异步任务1、编写一个类AsyncService异步处理还是
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
网络安全应急管理办法
飞行安全精准数据库更新卡住
电脑服务器怎样降温
疫情防控期间网络安全思考
魔法小说软件开发
国密认证服务器
邮件服务器软件 免费
苏州妞奥德软件开发
完美软件开发:方法...
网络安全手抄报简单又易画
串口服务器模块
莱山区游戏软件开发外包公司
软件开发公司工资表模板
女生做手机软件开发
漫游聊天记录保存到腾讯服务器
速雷极品美女数据库
sql数据库操作图片
辽宁语音网络技术价目表
苹果app签名证书软件开发
廊坊软件开发总监招聘网
江门专业软件开发厂家直销
移动网络不能连接服务器
网络安全常驻心
分布式数据库专委会
郑州uu陪玩软件开发
服务器文件迁移到阿里oss
web数据库技术重点内容
服务器在哪里买好
邢台市网络安全知识宣传活动
如何定义软件开发过程