码迷,mamicode.com
首页 > 编程语言 > 详细

spring中事务配置

时间:2019-08-10 11:29:25      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:val   span   size   text   xml配置方式   import   图片   cat   方式   

1:事务实现方式是通过动态代理实现;通过xml配置方式:

技术图片

 

1:其中,<tx:method name="trans" />中的name属性,支持通配符,比如*   name="trans*"代表所有以trans开头的方法,都适用

技术图片

 

一个通用的事务配置:

技术图片

2:使用注解方式配置事务:

技术图片

 

添加DI注解解析器,IOC注解解析器,事务注解解析器(TX注解解析器<tx:annotation-diven transaction-manager="txManager">),这个事务解析器中有个很重要的参数,就是配置事务管理器txtManager;事务本质就是动态代理,默认是JDK动态代理,如果不想用JDK动态代理,而是选择使用cglib方式进行动态代理,则可以设置如图属性(false为JDK,true为cglib);(JDK动态代理和cglib动态代理的主要区别是JDK是基于接口,cglib不是基于接口)

技术图片

 

注:注解解析器的作用是对某些注解可以进行解析

配置数据源(DataSource)是必须的;配置db.properties也是必须的;其余配置,都可以通过@Transactional注解,如图

技术图片

 3:使用注解+java代码配置的方式(springboot目前使用这种方式)

创建appConfig.java文件,该文件中添加@Configuration注解,相当于我们的applicationContext.xml文件;

@Import(DataSourceConfig.class),包含其它的配置类;DataSourceConfig.java也是一个有@Configuration标识的配置类;

@ComponentScan 就是一个IOC注解(<context:component-scan base-package="....">),可以带参数,参数为扫描的包,如果不带参数,代表当前类所在的包及其自包

@EnableTransactionManager:事务注解解析器(<tx:annotation-driven transaction-manager="xxxx">)

@Bean:相当于将一个类交给spring管理(<bean id="xxx",class="xxxxx"></bean>)

技术图片

DataSourceConfig.java:

@PropertySource("classpath:db.properties"):相当于<context:property-placeholder location="classpath:db.properties">

@Value:读取db.properties配置文件中属性的值

技术图片

最后,也是需要配合@Transaction注解使用;

 

 

 

 

spring中事务配置

标签:val   span   size   text   xml配置方式   import   图片   cat   方式   

原文地址:https://www.cnblogs.com/panbin/p/11324433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!