- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
- <context:component-scan base-package="com.spring"></context:component-scan>
- <!-- 导入资源文件 -->
- <context:property-placeholder location="classpath:db.properties"/>
- <!-- 配置 C3P0 数据源 -->
- <bean id="dataSource"
- class="com.mchange.v2.c3p0.ComboPooledDataSource">
- <property name="user" value="${jdbc.user}"></property>
- <property name="password" value="${jdbc.password}"></property>
- <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
- <property name="driverClass" value="${jdbc.driverClass}"></property>
- <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
- <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
- </bean>
- <!-- 配置 Spirng 的 JdbcTemplate -->
- <bean id="jdbcTemplate"
- class="org.springframework.jdbc.core.JdbcTemplate">
- <property name="dataSource" ref="dataSource"></property>
- </bean>
- <!-- 配置 bean -->
- <bean id="bookShopDao" class="com.spring.tx.xml.BookShopDaoImpl">
- <property name="jdbcTemplate" ref="jdbcTemplate"></property>
- </bean>
- <bean id="bookShopService" class="com.spring.tx.xml.service.impl.BookShopServiceImpl">
- <property name="bookShopDao" ref="bookShopDao"></property>
- </bean>
- <bean id="cashier" class="com.spring.tx.xml.service.impl.CashierImpl">
- <property name="bookShopService" ref="bookShopService"></property>
- </bean>
- <!-- 1. 配置事务管理器 -->
- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource"></property>
- </bean>
- <!-- 2. 配置事务属性 -->
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <!-- 根据方法名指定事务的属性 -->
- <tx:method name="purchase" propagation="REQUIRES_NEW"/>
- <tx:method name="get*" read-only="true"/>
- <tx:method name="find*" read-only="true"/>
- <tx:method name="*"/>
- </tx:attributes>
- </tx:advice>
- <!-- 3. 配置事务切入点, 以及把事务切入点和事务属性关联起来 -->
- <aop:config>
- <aop:pointcut expression="execution(* com.spring.tx.xml.service.*.*(..))"
- id="txPointCut"/>
- <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
- </aop:config>
- </beans>
来源: http://www.bubuko.com/infodetail-1947010.html