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

avatar
作者
筋斗云
阅读量:0

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  //封装复杂的邮件(携带附件) MimeMessage  MimeMessageHelper

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!