這篇文章帶給大家的內容是關於事務無法被spring容器管理的解決方法,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
最近在做一個小專案是springmvc mybatis 的框架每次在控制台日誌會有JDBC Connection [com.mysql.jdbc.JDBC4Connection@59dfe4bc] will not be managed by Spring 輸出
說明事務設定肯定有問題,我就去翻看了一下設定檔發現配置了註解方式的事務看了下程式碼也使用了@Transactional註解
所以我就開始思考哪裡出了問題 因為之前看過spring 的一些源碼和springmvc一下的一些源碼 所以有點思考的方向,經過一番思考把問題定位到spring配置文件
以及springmvc配置文件
spring設定檔中的掃描的bean 新增事務註解後spring 會為它新增代理具有交易的能力,springmvc容器啟動後和spring容器父子級的關係,getbean的過程是先取子容器的
bean 問題就出在這裡,springmvc容器中的bean沒有事務處理能力所以我就在掃描策略上做了一些調整
springmvc設定檔中註解掃描中加入
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
執行專案
#spring就可以管理事務了。
以上是事務無法被spring容器管理的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!