spring声明式事务中tx:method标签中的name属性不生效

method中指定com.ssh.service下所有类中以trans开头的方法开启事务,但测试的结果是,该配置对com.ssh.service包下的所有方法都有效,method中name设置的方法过滤不生效,跪求大神解答~~
以下是代码片段

 <!-- 开启声明式事务 -->
 <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="trans*" propagation="REQUIRED"/>
        </tx:attributes>
    </tx:advice>    
    <aop:config>
        <aop:pointcut expression="execution(* com.ssh.service.*.*(..))" id="point"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="point"/>
    </aop:config>

1个回答

应该是这样配置的图片说明

qq_38283703
qq_38283703 试了一下没有用,就拿转账为例,需要开启事务的方法转账失败会回滚,双方的钱数不变,对于没有事务管理的方法应该会扣钱,不会回滚,但是都回滚了!这就是定义的method不生效
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!