您的位置:首页 > 编程语言 > Java开发

spring 事务管理

2014-06-05 16:07 387 查看
 

、AOP和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: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.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">

    <bean id="sessionFactory"

        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="configLocation" value="classpath:hibernate.cfg.xml">

        </property>

    </bean>

    <bean id="tblUserDAO" class="com.angi.dao.TblUserDAO">

        <property name="sessionFactory">

            <ref bean="sessionFactory" />

        </property>

    </bean>

    <bean id="tblUserService" class="com.angi.dao.service.TblUserService">

        <property name="tblUserDAO">

            <ref bean="tblUserDAO" />

        </property>

    </bean>

    <!-- 声明一个 Hibernate 3 的 事务管理器供代理类自动管理事务用 -->

    <bean id="transactionManager"

        class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory">

            <ref local="sessionFactory" />

        </property>

    </bean>

    <!-- 需要引入aop的命名空间 -->

    <aop:config>

        <!-- 切入点指明了在执行Service的所有方法时产生事务拦截操作 -->

        <aop:pointcut id="daoMethods"

            expression="execution(* com.angi.dao.service.TblUserService.*(..))" />

        <!-- 定义了将采用何种拦截操作,这里引用到 txAdvice -->

        <aop:advisor advice-ref="txAdvice" pointcut-ref="daoMethods" />

    </aop:config>

    <!-- 需要引入tx的命名空间 -->

    <!-- 这是事务通知操作,使用的事务管理器引用自 transactionManager -->

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

        <tx:attributes>

            <!-- 指定哪些方法需要加入事务,这里懒惰一下全部加入,可以使用通配符来只加入需要的方法 -->

            <tx:method name="*" propagation="REQUIRED" />

        </tx:attributes>

    </tx:advice>
</beans>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: