SpringBoot事务管理、任务调度、Mail整合。

一.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
    
    @Autowired
    private JavaMailSenderImpl javaMailSender;
    @Test
    void 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("发送成功");
    }

    //发送复杂邮件
    @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("D:\\Desktop\\无聊\\1.png"));
        mimeMessageHelper.setFrom("xxxx@qq.com");
        mimeMessageHelper.setTo("xxxx@163.com");
        //4.发送邮件
        javaMailSender.send(mimeMessage);
    }
}

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值