zoukankan      html  css  js  c++  java
  • Spring @EnableTransactionManagement

    @EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />

    关于事务管理器,不管是JPA还是JDBC等都实现自接口 PlatformTransactionManager.

    如果你添加的是 spring-boot-starter-jdbc 依赖,框架会默认注入 DataSourceTransactionManager 实例。

    如果你添加的是 spring-boot-starter-data-jpa 依赖,框架会默认注入 JpaTransactionManager 实例。

    @Configuration
    /*
    将MyBatisConfig类和JdbcConfig类交给Spring管理
     */
    @Import({MyBatisConfig.class,JdbcConfig.class})
    /**
     *等同于<context:component-scan base-package="com.itheima.service">
     */
    @ComponentScan( "com.itheima.service")
    /*开启事务管理
    等同于<tx:annotation-driven transaction-manager="transactionManager"/>
     */
    @EnableTransactionManagement
    public class SpringConfig {
        /*
        等同于<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         */
        @Bean("transactionManager")
        public DataSourceTransactionManager getDataSourceTxManager(@Autowired DataSource dataSource){
            DataSourceTransactionManager dtm = new DataSourceTransactionManager();
            //等同于<property name="dataSource" ref="dataSource"/>
            dtm.setDataSource(dataSource);
            return dtm;
        }
    }

     在使用Spring MVC的时候,配置文件中我们经常看到 annotation-driven 这样的注解,其含义就是支持注解,一般根据前缀 tx、mvc 等也能很直白的理解出来分别的作用。

    <tx:annotation-driven/> 就是支持事务注解的(@Transactional) 、<mvc:annotation-driven> 就是支持 MVC 注解的,说白了就是使Controller中可以使用MVC的各种注解。

    REF

    https://www.cnblogs.com/zhuyeshen/p/10907632.html

  • 相关阅读:
    [日常] Go-逐行读取文本信息
    [日常] nginx的错误日志error_log设置
    [日常] nginx记录post数据
    [PHP] PHP在CLI环境下的错误日志
    [PHP] 2018年终总结
    [MySQL] INFORMATION_SCHEMA 数据库包含所有表的字段
    前端吐槽的后端接口那些事
    读《猫力乱步》 | 如果你走得够远,你也能有那么多故事
    js获取隐藏元素宽高的方法
    RequireJS使用注意地方
  • 原文地址:https://www.cnblogs.com/emanlee/p/15742620.html
Copyright © 2011-2022 走看看