zoukankan      html  css  js  c++  java
  • Spring 注解之 @EnableTransactionManagement:Spring Boot 事务配置

    Spring Boot 开启声明式事务支持

            所有的数据访问技术都有事务处理机制,这些技术提供了API用来开启事务、提交事务以完成数据操纵,或者在发生错误的时候回滚数据。Spring支持声明式事务,这是基于AOP实现的。

            Spring提供了一个@EnableTransactionManagement 注解以在配置类上开启声明式事务的支持。添加该注解后,Spring容器会自动扫描被@Transactional注解的方法和类。简单开启事务管理:

    @SpringBootApplication
    @EnableTransactionManagement // 开启注解事务管理,等价于xml配置方式的 <tx:annotation-driven />
    public class DemoApplication {
    。。。

     查看项目事务管理器

             关于事务管理器,不管是JPA还是JDBC等都实现自接口 PlatformTransactionManager,你如果添加的是 spring-boot-starter-jdbc 依赖,框架会默认注入 DataSourceTransactionManager 实例;如果添加的是 spring-boot-starter-data-jpa 依赖,框架会默认注入 JpaTransactionManager 实例。

     

    数据访问技术

    实 现

    JDBC

    DataSourceTransactionManager

    JPA

    JpaTransactionManager

    Hibernate

    HibernateTransactionManager

    JDO

    JdoTransactionManager

    分布式事务

    JtaTransactionManager

    数据访问技术及其实现

             如下方法可以查看自动注入的是 PlatformTransactionManager 接口的哪个实现类:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import org.springframework.transaction.PlatformTransactionManager;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    @SpringBootApplication
    @EnableTransactionManagement //开启声明式事务支持
    public class DemoApplication {
    
        public static void main(String[] args) {
            System.out.println("项目URL: http://localhost:8087/user/getUserById");
            SpringApplication.run(DemoApplication.class, args);
        }
        @Bean
        public Object testBean(PlatformTransactionManager platformTransactionManager){
            System.out.println(">>>>>>>>>>事务管理器:" + platformTransactionManager.getClass().getName());
            return new Object();
        }
    }

            启动项目,在控制台找到如下信息,说明项目添加的是 spring-boot-starter-jdbc 依赖。

    >>>>>>>>>>事务管理器:org.springframework.jdbc.datasource.DataSourceTransactionManager

            关于开启Spring Boot声明式事务,大家有什么看法?欢迎留言讨论,共同进步,也希望大家多多点赞,祝各位生活愉快。

    Reference

            《JavaEE开发的颠覆者: Spring Boot实战》

  • 相关阅读:
    websocket 初识
    JavaScript 系列博客(四)
    JavaScript 系列博客(三)
    JavaScript 系列博客(二)
    JavaScript 系列博客(一)
    前端(八)之形变
    前端(七)之动画与阴影
    java变量、数据类型
    js简单的获取与输出
    Eclipse字体修改
  • 原文地址:https://www.cnblogs.com/east7/p/13173181.html
Copyright © 2011-2022 走看看