补充:四种新的写法
SpringBoot中的事务管理
//设置事务 在业务层中
如果在类上:表示所有方法均作事务管理
在方法上:表示只是该方法作事务管理
@Transactional(isloation = ISolation.DEFAULT)
@Transactional(propagation = Propagation.REQUIRED)
//开启事务 在启动类上
@EnableTransactionManagement 相关配置
SpringBoot 异步任务
在项目开发中,绝大多数情况下都是通过异步方式处理业务逻辑的
但是批处理数据,批量发送邮件/短信 容易造成阻塞的情况
解决方案:
1.多线程处理
new个子线程去处理耗时操作,主线程正常运行
2.在Spring3+之后 内置@Async注解 【更简单】
@EnableAsync 启动类上开启异步任务
@Async 标识的方法会异步执行【开辟子线程】
SpringBoot的定时任务调度
背景:
在项目开发中,经常需要执行一些定时任务,比如每月1号凌晨需要汇总上个月的数据分析报表; 每天凌晨分析前一天的日志信息等定时操作等
@EnableSchedulings 启动类上开启定时任务
@Scheduled 标识的方法会进行定时处理
注意:需要通过 cron 属性来指定
cron表达式 : 秒 分 时 日 月 星期 年
【在线生成工具 : https://】
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.163.com 【邮箱服务器类型】
ssl连接【早期版本需要】
spring.mail.properties.smtp.ssl.enable=true
第三步:编写代码
装配JavaMailSenderImpl核心对象
调用方法
发送简单邮件
@Test
void show1() {
//1.创建邮件对象
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
//2.设置信息
simpleMailMessage.setSubject("疫情全面放开");
simpleMailMessage.setText("2022年好难,做了11个月的核酸,结果在第12个月阳了~~~");
simpleMailMessage.setFrom("1655020321@qq.com");
simpleMailMessage.setTo("wangyanyi_enginner@163.com");
//3.发送邮件
javaMailSender.send(simpleMailMessage);
System.out.println("发送成功~~~");
}
发送复杂邮件
@Test
void show2()throws Exception {
//1.创建邮件对象
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//2.创建MimeMessageHelper
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
//3.设置信息
mimeMessageHelper.setSubject("程序员的误解");
mimeMessageHelper.setText("程序员是个<span style='color:red'>高薪,高危</span>的职业",true);
mimeMessageHelper.addAttachment("1.jpg",new File("C:\\imgs\\1.jpg"));
mimeMessageHelper.setFrom("1655020321@qq.com");
mimeMessageHelper.setTo("wangyanyi_enginner@163.com");
//4.发送邮件
javaMailSender.send(mimeMessage);
}