配置文件如下:引入了tx的命名空间。
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!--
<bean id="ds"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
-->
<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url">
<value>jdbc:mysql://localhost/test</value>
</property>
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>pass</value>
</property>
</bean>
<bean id="userdao" class="cn.com.gan.spring.database.UserDao">
<property name="dataSource">
<ref local="ds" />
</property>
</bean>
<bean id="tranmanager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds"></property>
</bean>
<tx:advice id="txadvice" transaction-manager="tranmanager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="find" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="txpointcut"
expression="execution(public * cn.com.gan.spring.database.IUserDao.*(..))" />
<aop:advisor pointcut-ref="txpointcut" advice-ref="txadvice" />
</aop:config>
<!--
<bean id="interceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="tranmanager"></property>
<property name="transactionAttributeSource"
value="cn.com.gan.spring.database.IUserDao.insert=PROPAGATION_REQUIRED">
</property> </bean> <bean id="userdaoproxy"
class="org.springframework.aop.framework.ProxyFactoryBean"> <property
name="proxyInterfaces">
<value>cn.com.gan.spring.database.IUserDao</value> </property>
<property name="target" ref="userdao"></property> <property
name="transactionAttributes"> <props> <prop
key="insert">PROPAGATION_REQUIRED</prop> </props> </property>
<property name="interceptorNames"> <list> <value>interceptor</value>
</list> </property> </bean>
-->
</beans>
本文展示了如何在Spring框架中配置数据源、事务管理器,并实现AOP切面来处理事务,确保业务逻辑的正确性和数据一致性。
1372

被折叠的 条评论
为什么被折叠?



