Spring 基于xml配置方式的事务

Posted JustDo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 基于xml配置方式的事务相关的知识,希望对你有一定的参考价值。

参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html

我们做了相应的修改。在dao中和service中的各个类中,去掉所有注解标签。然后为为每个字段提供一个setXxx()方法

 

最后就是配置applicationContext.xml文件了。内容如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:aop="http://www.springframework.org/schema/aop"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xmlns:tx="http://www.springframework.org/schema/tx"
 7     xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
 8         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 9         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
10         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
11 
12 
13     <!-- 读取db.properties配置信息 -->
14     <context:property-placeholder location="classpath:db.properties"/>
15     
16     <!-- 配置一个C3P0数据源 -->
17     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
18         <property name="user" value="${jdbc.user}"/>
19         <property name="password" value="${jdbc.password}"/>
20         <property name="driverClass" value="${jdbc.driverClass}"/>
21         <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
22     </bean>
23     
24     <!-- 配置一个JdbcTemplate,用来操作数据库 -->
25     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
26         <property name="dataSource" ref="dataSource"/>
27     </bean>
28     
29     <!-- 配置dao -->
30     <bean id="bookDao" class="com.proc.dao.BookDao">
31         <property name="jdbcTemplate" ref="jdbcTemplate"/>
32     </bean>
33     <bean id="storeDao" class="com.proc.dao.StoreDao">
34         <property name="jdbcTemplate" ref="jdbcTemplate"/>
35     </bean>
36     <bean id="userDao" class="com.proc.dao.UserDao">
37         <property name="jdbcTemplate" ref="jdbcTemplate"/>
38     </bean>
39     
40     <!-- 配置service -->
41     <bean id="bookShopService" class="com.proc.service.BookShopServiceJdbcImps">
42         <property name="bookDao" ref="bookDao"/>
43         <property name="storeDao" ref="storeDao"/>
44         <property name="userDao" ref="userDao"/>
45     </bean>
46     
47     <!-- 配置事务管理器 -->
48     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
49         <property name="dataSource" ref="dataSource"></property>
50     </bean>
51 
52     <!-- 配置事务属性 -->
53     <tx:advice id="advice">
54         <tx:attributes>
55             <tx:method name="get*" read-only="true"/>
56             <tx:method name="find*" read-only="true"/>
57             <tx:method name="*"/>
58         </tx:attributes>
59     </tx:advice>
60     
61     <!-- 配置事务的切入点: AOP切入 -->
62     <aop:config>
63         <!-- 配置切入表达式 -->
64         <aop:pointcut expression="execution(* com.proc.service.*.*(..))" id="pointcut"/>
65         <aop:advisor pointcut-ref="pointcut" advice-ref="advice"></aop:advisor>
66     </aop:config>
67 </beans>

  这样基于xml方式的事务就配置好了。

 

代码分析:

  事务采用的是AOP的方式。所以需要配置AOP切入点。指定需要为哪些类和方法采用事务

 

以上是关于Spring 基于xml配置方式的事务的主要内容,如果未能解决你的问题,请参考以下文章

Spring 基于xml配置方式的事务(14)

Spring基础(十六):Spring事务管理注解方式和XML配置方式

Spring事务管理

Spring事务管理4-----声明式事务管理

Spring Boot 中使用 @Transactional 注解配置事务管理

Spring Boot 中使用 @Transactional 注解配置事务管理