在使用springMVC時,我使用了@Service這樣的注解,發現使用注解@Transactional聲明的事務不起作用


問題出現的場景:

在使用spring mvc時,我使用了@Service這樣的注解, 發現使用注解@Transactional聲明的事務不起作用。

我的配置如下:

<mvc:annotation-driven />

<context:component-scan base-package="org.test"/ >

<bean id="txManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
  <property name="dataSource" ref="dataSource" /> 
</bean> 

<tx:annotation-driven transaction-manager="txManager" /> 

原因是

component-scan和事務所在的上下文不一樣,component-scan所在的配置是由servlet加載的,事務所在的配置文件是由Listener加載的。 

我的解決方法

安裝下面的配置,在應用啟動時,不讓spring掃描到@Service注解的類

<context:component-scan base-package="org.test" > 
  <context:exclude-filter type="annotation"  expression="org.springframework.stereotype.Service" /> 
</context:component-scan> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM