hibernote的xml版的声明式事务

事务的实现需要aop支持,所以需要配置aop:

前提先配置数据源

1.事务管理器配置

2.切面:切入点

3.事务通知,属性

4.dao层继承HibernateDaoSupport类即可   不需要注解

================================================================================================

sessionFactory:是mapperd的配置  如下:

    <bean id="sessionFactory"  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
        <property name="mappingLocations">
        <list>
            <value>classpath:mapping/ContractAttributeInfo.hbm.xml</value>
            <value>classpath:mapping/PersonTaskInfo.hbm.xml</value>
        </list>
        </property>  
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.jdbc.batch_size">10</prop>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.Oracle10gDialect
                </prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">false</prop>
<!--                <prop key="connection.autocommit">true</prop>  添加这个 -->
            </props>
        </property>
    </bean>

1. 

    <bean id="transactionManager"  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

2.

    <aop:config>
        <aop:pointcut id="allManagerMethod"
         expression="execution(* com.chinalife.contract.*.action.*.*(..)) || execution(* com.chinalife.contract.*.service.impl.*.*(..))" />
        <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
    </aop:config>

3.

<!-- 事务的传播特性 -->
    <tx:advice id="jdbctxAdvice" transaction-manager="jdbcTransactionManager">
        <tx:attributes>
            <tx:method name="save*" propagation="REQUIRED" />
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="create*" propagation="REQUIRED" />
            <tx:method name="do*" propagation="REQUIRED" />
            <tx:method name="execute*" propagation="REQUIRED" />
            <tx:method name="modify*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="del*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="*" propagation="REQUIRED" read-only="true" />
        </tx:attributes>
    </tx:advice>

猜你喜欢

转载自blog.csdn.net/fxbfxb111/article/details/86710947