1. 程式人生 > >Spring xml配置和註解一起使用

Spring xml配置和註解一起使用

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異常