阅读量: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