spring给予XML配置的声明式事务

步骤:

1.添加aop、tx命名空间声明;

2.配置事务管理器;

3.配置增强;

4.配置aop

具体xml设置如下:

<?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:p="http://www.springframework.org/schema/p"
	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-3.1.xsd
	http://www.springframework.org/schema/aop 
	http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
	">

	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName"
			value="oracle.jdbc.driver.OracleDriver">
		</property>
		<property name="url"
			value="jdbc:oracle:thin:@localhost:1521:orcl">
		</property>
		<property name="username" value="system"></property>
		<property name="password" value="ok"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.Oracle9Dialect
				</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/it/entity/Stu.hbm.xml</value></list>
		</property>		
	</bean>
	<!-- spring声明式事务  3个步骤-->
	<!-- 1 事务管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"/>	
	</bean>
	<!-- 2 增强 -->
	<tx:advice id="tx" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="batch*"/>
		</tx:attributes>
	</tx:advice>
	<!-- 3 aop -->
	<aop:config>
		<aop:pointcut expression="execution(* com.it.biz.impl.*.*(..))" id="pt"/>
		<aop:advisor advice-ref="tx" pointcut-ref="pt"/>
	</aop:config>
	<!-- spring声明式事务写在最上面 -->
	
	<!-- stuDao -->
	<bean id="studao" class="com.it.dao.impl.StuDaoImpl">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	<!-- stuBiz -->
	<bean id="stubiz" class="com.it.biz.impl.StuBizImpl">
		<property name="studao" ref="studao"/>
	</bean>
	<!-- stuAction -->
	<bean id="stuaction" class="com.it.action.StuAction">
		<property name="stubiz" ref="stubiz"/>
	</bean>	
	
</beans>


原文地址:https://www.cnblogs.com/archermeng/p/7537426.html