一.Spring Boot中的事务管理
-
编程式事务 : 在代码中硬编码(不推荐使用):通过 TransactionTemplate 或者 TransactionManager 手动管理事务,实际应用中很少使用,用于理解Spring 事务管理。
-
声明式事务:在 XML 配置文件或者基于注解 @Transactional(推荐使用),通过AOP实现。
//设置事务
@Transactional(isolation = Isolation.DEFAULT)
@Transactional(propagation = Propagation.REQUIRED)
//开启事务
@EnableTransactionManagement
二.Spring Boot异步任务
在项目开发中,绝大多数情况下都是通过同步方式处理业务逻辑的,但是比如批量处理数据,批量发送 邮件,批量发送短信等操作 容易造成阻塞的情况,之前大部分都是使用多线程来完成此类任务而在 Spring 3+之后,就已经内置了@Async注解来完美解决这个问题,从而提高效率。
//使用的注解
@EnableAsync 启动类上开启基于注解的异步任务
@Async 标识的方法会异步执行
三.SpringBoot定时任务调度
SpringTask
在项目开发中,经常需要执行一些定时任务,比如 每月1号凌晨需要汇总上个月的数据分析报表; 每天 凌晨分析前一天的日志信息等定时操作。Spring 为我们提供了异步执行定时任务调度的方式
//使用的注解
@EnableScheduling启动类上开启基于注解的定时任务
@Scheduled标识的方法会进行定时处理
需要通过 cron 属性来指定 cron 表达式:秒 分 时 日 月 星期 年
在线生成cron表达式 http://cron.qqe2.com/
四.SpringBoot 整合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
第三步编写代码
@SpringBootTest
class Springboot04CenterApplicationTests {//邮件收发核心类
JavaMailSenderImpl javaMailSender;
//封装简单的邮件内容
SimpleMailMessage
//封装复杂的邮件(携带附件)
MimeMessage
MimeMessageHelper@Autowiredprivate JavaMailSenderImpl javaMailSender;@Testvoid show1(){//1.创建邮件对象SimpleMailMessage simpleMailMessage = new SimpleMailMessage();//2.设置信息simpleMailMessage.setSubject("放假了");simpleMailMessage.setText("2024年暑假将从七月十日开始至九月一日");simpleMailMessage.setFrom("2510641529@qq.com");simpleMailMessage.setTo("wwt15991178033@163.com");//3.发送邮件javaMailSender.send(simpleMailMessage);System.out.println("发送成功");}//发送复杂邮件@Testvoid show2()throws Exception {//1.创建邮件对象MimeMessage mimeMessage = javaMailSender.createMimeMessage();//2.创建MimeMessageHelperMimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);//3.设置信息mimeMessageHelper.setSubject("标题");mimeMessageHelper.setText("程序员是个<span style='color:red'>高薪,高危</span>的职业",true);mimeMessageHelper.addAttachment("1.jpg",new File("D:\\Desktop\\无聊\\1.png"));mimeMessageHelper.setFrom("xxxx@qq.com");mimeMessageHelper.setTo("xxxx@163.com");//4.发送邮件javaMailSender.send(mimeMessage);}
}