Spring注解事务和声明式事务同时使用

Spring xml和注解混用,方法的事物既有注解方式@Transactional()、又有xml的方式

<!-- 配置事务管理器类 -->
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    
    <!-- 配置事务增强(如果管理事务?) -->
    <tx:advice id="txAdvice" transaction-manager="txManager">
        <tx:attributes>
            <tx:method name="insert*"/>
            <tx:method name="deleteByPrimaryKey" propagation="REQUIRES_NEW"/>
        </tx:attributes>
    </tx:advice>
    
    <!-- Aop配置: 拦截哪些方法(切入点表表达式) + 应用上面的事务增强配置 -->
    <aop:config>
        <aop:pointcut expression="execution(* com.hive.quartz.service.*.*(..))" id="pt"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>
    </aop:config>
不会出现注解生效一部分,xml生效一部;xml的配置会覆盖注解配置。


Spring原文:
Annotation injection is performed before XML injection, thus the latter configuration will override the former for properties wired through both approaches.

也就是说对于同一个bean 不能注解完成部分属性的设定 xml完成部分属性的设定。xml会覆盖注解

注意使用注解事物,事物里面的异常一定要抛出,不然会出现 Transaction rolled back because it has been marked as rollback-only异常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值