在servlet-context中增加
<context:annotation-config />(有了<context:component-scan base-package="XXX.XXX" />就不用寫這個了)
<tx:annotation-driven/>
還要增加xmlns
xmlns:tx="http://www.springframework.org/schema/tx"
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
增加類@org.springframework.transaction.annotation.Transactional注釋
增加了bean(不加也可以運行)
<!-- 聲明式容器事務管理 ,transaction-manager指定事務管理器為transactionManager -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="get*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config expose-proxy="true">
<!-- 只對業務邏輯層實施事務 -->
<aop:pointcut id="txPointcut" expression="execution(* com.test.service..*.*(..))" />
<!-- Advisor定義,切入點和通知分別為txPointcut、txAdvice -->
<aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/>
</aop:config>
就可以了