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

問題出現的場景:spring

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

個人配置以下:mvc

<mvc:annotation-driven />component

<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" /> servlet

緣由是io

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

個人解決方法test

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

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

相關文章
相關標籤/搜索