欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > SpringBoot(事务管理,异步任务,任务调度,整合Mail)

SpringBoot(事务管理,异步任务,任务调度,整合Mail)

2025/2/24 16:24:41 来源:https://blog.csdn.net/qq_64669006/article/details/140646214  浏览:    关键词:SpringBoot(事务管理,异步任务,任务调度,整合Mail)

spring自身就集成了许多中间件,可以帮助我们进行日常的开发。

一:Spring Boot中的事务管理

spring事务管理有两种方式

编程式:

即:使用AOP中的切点,切面的知识,利用代理模式对事务进行管理,即AOP在事务方面的应用,具体代码如下:

    public Object AroundLogger(ProceedingJoinPoint pjp){Object returnobj = null;//保存主业务方法的返回值try{//1.前置通知System.out.println("环绕通知===》前置通知");Object[] objs = pjp.getArgs();//主业务方法的参数returnobj =  pjp.proceed(objs);//调用主业务方法//3.后置通知System.out.println("环绕通知===》返回通知");}catch (Throwable tw){//4.异常通知System.out.println("环绕通知===》异常通知");}finally{//5.最终通知System.out.println("环绕通知===》后置通知");}return returnobj;}

声明式:

相比编程式简单得多,是Spring Boot已经封装好的。

//设置事务,在需要进行声明的类或方法上进行添加,@Transactional
@Transactional(isolation = Isolation.DEFAULT)
@Transactional(propagation = Propagation.REQUIRED)
//开启事务,在启动类上添加
@EnableTransactionManagement

二:Spring Boot中异步任务

像发送短信等业务,由于发送短信比较慢,所以可以提前将成功消息返回,就像直接跳转到登录界面等待输入验证码,但实际验证码还有3,4秒才会发送到,甚至可能发送失败。

这种一步处理的方式只适合那种不影响主业务功能的部分使用,因为如果处理失败也不会影响主业务。

@EnableAsync 启动类上开启基于注解的异步任务
@Async 标识的方法会异步执行

三:定时任务调度

在项目开发中,经常需要执行一些定时任务,比如 每月1号凌晨需要汇总上个月的数据分析报表; 每天 凌晨分析前一天的日志信息等定时操作。Spring 为我们提供了异步执行定时任务调度的方式

@EnableScheduling启动类上开启基于注解的定时任务
@Scheduled标识的方法会进行定时处理
//需要通过 cron 属性来指定 cron 表达式:秒 分 时 日 月 星期 年
//在线生成cron表达式 http://cron.qqe2.com/

四:Spring整合Mail

导入坐标

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

开启配置

#配置邮箱信息
spring.mail.username=spring.mail.password=#发送邮件服务器
spring.mail.host=smtp.qq.com#ssl连接
spring.mail.properties.smtp.ssl.enable=true

编写代码

//邮件收发核心类
JavaMailSenderImpl javaMailSender;//封装简单的邮件内容
SimpleMailMessage//封装复杂的邮件(携带附件)
MimeMessageMimeMessageHelper

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词