zoukankan      html  css  js  c++  java
  • Spring的声明式事务

    1.与hibernate集成
    <bean id="sessionFactory"   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
       <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> 
    </bean> 
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
       <property name="sessionFactory"><ref bean="sessionFactory" /></property> 
    </bean> 
     <!--支持@Transactional标记--> 
    <tx:annotation-driven /> 
    <!-- 支持@AspectJ标记--> 
    <aop:aspectj-autoproxy /> 
    <!--以AspectJ方式定义AOP --> 
    <tx:advice id="txAdvice" transaction-manager="transactionManager"> 
       <tx:attributes> 
        <tx:method name="get*" read-only="true" /> 
        <tx:method name="find*" read-only="true" /> 
        <tx:method name="search*" read-only="true" /> 
        <tx:method name="*" /> 
       </tx:attributes> 
    </tx:advice> 

    <!--以AspectJ方式定义AOP 第二种方法--> 

    <tx:advice id="txAdvice" transaction-manager="txManager">
    <tx:attributes>
    <tx:method name="add*" propagation="REQUIRED"/>
    <tx:method name="del*" propagation="REQUIRED"/>
    <tx:method name="update*" propagation="REQUIRED"/>
    <tx:method name="save*" propagation="REQUIRED"/>
    <tx:method name="insert*" propagation="REQUIRED"/>
    <tx:method name="*" read-only="true" />
    </tx:attributes>
    </tx:advice>


    <aop:config proxy-target-class="true"> <aop:advisor pointcut="execution(* com.ssh.idao.*DAO.*(..))" advice-ref="txAdvice" /> </aop:config> <bean name="/view" class="com.ssh.struts.action.ViewAction"> </bean> 2.与ibaitis集成,只需配置jdbc事务即可 <context:component-scan base-package="com.filmdubbing.manager"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="initialSize" value="5" /> <property name="maxActive" value="100" /> <property name="maxIdle" value="30" /> <property name="maxWait" value="1000" /> <property name="poolPreparedStatements" value="true" /> <property name="defaultAutoCommit" value="true" /> <property name="validationQuery" value="select 1 from dual" /> <property name="testOnBorrow" value="true" /> </bean> <bean id="yzfwTM" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <tx:advice id="yzfwTA" transaction-manager="yzfwTM"> <tx:attributes> <tx:method name="get*" propagation="REQUIRED" read-only="true" rollback-for="Throwable" /> <tx:method name="find*" propagation="REQUIRED" read-only="true" rollback-for="Throwable" /> <tx:method name="*" propagation="REQUIRED" rollback-for="Throwable" /> </tx:attributes> </tx:advice> <aop:config proxy-target-class="true"> <aop:pointcut id="yzfwTO" expression="execution(* com.filmdubbing.manager..*.*(..))" /> <aop:advisor advice-ref="yzfwTA" pointcut-ref="yzfwTO" /> </aop:config>
  • 相关阅读:
    react之setState面试题
    react之setState异步和同步问题
    react关于setState的使用
    antd框架tree树动态插入,解决新版Antd无法使用TreeNodes问题
    postman测试接口时参数为数组时怎么测试?
    你不知道的react更新状态this.setState细节点
    浅谈md5加密技术
    浅谈纯文本&&富文本&&Markdown区别
    【LeetCode】43. Multiply Strings
    【LeetCode】44. Wildcard Matching (2 solutions)
  • 原文地址:https://www.cnblogs.com/xunianchong/p/4921177.html
Copyright © 2011-2022 走看看