现在用起来没问题,就是不想让一个类的某个方法加入事务控制。不知道如何修改配置文件STRUTS2 SPRING HIBERNATE
我现在SPRING的配置如下<aop:config>
   <aop:advisor id="managerTx" advice-ref="txAdvice" pointcut="execution(* com.test.web.action..*(..))" order="1" />
</aop:config><tx:annotation-driven /><aop:aspectj-autoproxy proxy-target-class="true"/><context:annotation-config /><context:component-scan base-package="com.test" />...其他省略
com.test.web.action里面所有类所有方法都加入事务控制,主要是方便。
现在我有一个类com.test.web.action.AddUser,里面的某个方法 addUser() 不想加入事务控制,如何修改SPRING的配置呢??

解决方案 »

  1.   


    <!-- 定义事务管理者bean,并注入sessionFactory -->
    <bean id="tranManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <tx:advice id="txAdvice" transaction-manager="tranManager">
    <tx:attributes>
    <!-- 不使用事务 ,并设置为只读,效率更高-->
    <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
    <tx:method name="list*" propagation="SUPPORTS" read-only="true" />
    <tx:method name="load*" propagation="SUPPORTS" read-only="true" />
    <!-- 使用事务,其它所有方法 -->
    <tx:method name="*" propagation="REQUIRED" />
    </tx:attributes>
    </tx:advice>
    <aop:config>
    <aop:pointcut id="bizMethods"
    expression="execution(* com.test.web.action..*(..))" />
    <aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods" />
    </aop:config>
      

  2.   

    那个不想加入事务的方法,不要让它匹配到 或者改method的属性