1. 程式人生 > >spring + mybatis 下出現JDBC Connection *** will not be managed by Spring錯誤

spring + mybatis 下出現JDBC Connection *** will not be managed by Spring錯誤

框架   druid 、spring 4.1.3 、mybatis 3.2.8

訪問時日誌列印

Creating a new SqlSession
SqlSession [[email protected]] was not registered for synchronization because synchronization is not active
2017-10-21 10:22:53,647 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[ERROR] testWhileIdle is true, validationQuery not set
2017-10-21 10:22:53,659 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[INFO] {dataSource-1} inited
JDBC Connection [ConnectionID:1 ClientConnectionId: 3ce6b337-3246-4db3-8edd-dcaabbe19925] will not be managed by Spring

同事事務也不生效

事務配置

	<!-- 事務管理器 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<!-- 資料來源 -->
		<property name="dataSource" ref="dataSource" />
	</bean>
	<!-- 通知 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<!-- 傳播行為 -->
			<tx:method name="save*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
			<tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
			<tx:method name="add*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
			<tx:method name="create*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
			<tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
			<tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
			<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
			<tx:method name="select*" propagation="SUPPORTS" read-only="true" />
			<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
			<tx:method name="list*" propagation="SUPPORTS" read-only="true" />
		</tx:attributes>
	</tx:advice>
	<!-- 切面 -->
	<aop:config>
		<aop:advisor advice-ref="txAdvice"
			pointcut="execution(* com.ciguo.service.*.*(..))" />
	</aop:config>

資料庫連線配置
	<!-- 資料庫連線池 -->
	<!-- 載入配置檔案 -->
	<context:property-placeholder location="classpath:resource/*.properties" />
	
	<!-- 配置掃描包,載入mapper代理物件 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.ciguo.mapper"></property>
		<property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate"></property>
	</bean>
	
	<!-- 資料庫連線池 -->
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="maxActive" value="10" />
		<property name="minIdle" value="5" />
	</bean>
	
	<!-- 配置sqlsessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property>
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 建立一個sqlSession例項,執行緒安全的,可以在所有DAO例項共享,原理是將sqlSession,事務與當前執行緒掛鉤  -->
    <bean name="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="close" scope="prototype">
        <constructor-arg index="0" ref="sqlSessionFactory" />
    </bean>


除錯很久沒排查到錯誤,最後想到是不是配置切點掃描表示式的問題,仔細看了切點表示式


execution(* com.ciguo.service.*.*(..))

這種寫法是掃描到service下一級*.java裡面的方法,顯然是找不到的,於是乎改成
execution(* com.ciguo.service.*.impl.*.*(..))

impl後面第一個 *  表示Java類,第二個 * 表示方法 這樣子就能掃描到了,重啟測試,

Creating a new SqlSession
Registering transaction synchronization for SqlSession [[email protected]]
2017-10-21 10:38:48,126 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[ERROR] testWhileIdle is true, validationQuery not set
2017-10-21 10:38:48,140 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[INFO] {dataSource-1} inited
JDBC Connection [ConnectionID:1 ClientConnectionId: a66941f8-3f93-4b13-9946-45de09c9b1d8] will be managed by Spring

SqlSession現在已經被spring管理了,事務也生效了

相關推薦

spring + mybatis 出現JDBC Connection *** will not be managed by Spring錯誤

框架   druid 、spring 4.1.3 、mybatis 3.2.8 訪問時日誌列印 Creating a new SqlSession SqlSession [[email protected]] was not registered for syn

伺服器啟動500日誌顯示MySQL-AB JDBC Driver] will not be managed by Spring

相信有很多小夥伴跟我一樣剛寫完程式一測試就是錯誤500,不要著急,對於ssm初學者來說,出問題很正常一個個解決就行了。 *MySQL-AB JDBC Driver] will not be managed by Spring [16:17:16.825]

will not be managed by Spring/ [managed: 15; max: 15]

ase tis scan contex rev not ger context tran 檢查事務配置 檢查 mybatis 配置文件掃描路徑是否正確 <!-- 自動掃描 --> <context:component-scan base-

spring jdbcTemplate中獲取jdbc Connection並執行操作

實際應用例子在專案中需要獲取資料庫中元資料相關資訊,比如表名,欄位名,長度等jdbcTemplate 可以通過SqlRowSetMetaData 可以獲取到部分元資料,但是不能獲取備註資訊(comment中的內容) 已經有jdbcTemplate物件,只需要通過jd

Could not open JDBC Connection for transaction; nested exc [使用者名稱密碼錯誤異常】

HTTP Status 500 - Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could

spring-mybatis配置使用jdbc.properties導致資料庫連接獲取不到

在spring-mybatis的配置中使用jdbc配置資料來源,卡在 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@83ec

LinuxChrome或Chromium出現“Your profile could not be opened correctly”解決方法

當你的Chrome上出現下圖的" Your profile could not be opened correctly"錯誤資訊時,可能是因為你的Chrome配置檔案資料已經損壞。這個問題經常發生在手動升級Google Chrome的時候。

maven 下載jar失敗: resolution will not be reattempted until the update interval of central has elapsed or updates are forced

emp 。。 epo except resp esp failure XML could Multiple annotations found at this line: - ArtifactTransferException: Failure to transfer

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP

統一 apple col convert rstp stp line methods gree <?php class Car { var $color = "add"; function Car($color="green") {

linux 出現 SHELL syntax error:unexpected end of file 提示錯誤

shell syntax error 基本上可以判斷是字符異常錯誤首先註釋掉盡快會出錯的代碼,然後進行判斷如果代碼沒有問題,可以修改字符格式vim文本下,esc推出編輯模式 :set fileformat unix ,最後:wq 保存 ,錯誤消失。 參考http://blog.csdn.net/

Spring Boot使用thymeleaf模板時報異常:template might not exist or might not be accessible by any of the configured Template Resolvers

logs pla 開頭 spring 方法 temp ring mode acc 錯誤如下: template might not exist or might not be accessible by any of the configured Template R

【MySQL】出現“SELECT list is not in GROUP BY clause and contains xxx”錯誤提示

engine 數據 連接 設置 subst sql_mode xxx and sele 需要設置為 sql_mode=‘NO_ENGINE_SUBSTITUTION‘ 設置方式: 1、MySQL客戶端連接上數據庫。 2、當前操作的數據切換成 mysql 3、執行 SELEC

Eclipse 軟件 Java 解決:出現的editor does not contain a main type錯誤框 問題

strong eight res cli use padding out auto borde Eclipse 軟件 解決:出現的 editor does not contain a main type 錯誤框 問題 當你運行 Java文件是,如果彈出了下面的 錯誤框:

Connection could not be established with host smtp.163.com

ssl 阿裏雲 加密 str col 本地 服務 ould nbsp laravel阿裏雲屏蔽25,無法發送郵件的解決方案 本地測試郵件可以發送成功,部署在阿裏雲上,在安全組中配置了25端口的出入後還是不行。 也就是加入了SSL驗證,測試,問題迎刃而解! 阿裏雲服務器封禁

"mkimage" command not found - U-Boot images will not be built

       對於剛下載的核心當我們make後一般預設會生成zImage,然而uImage的規則如何生成呢?                 首先uImage

Connection could not be established with host smtp.163.com 阿星小棧

 laravel阿里雲屏蔽25,無法傳送郵件的解決方案 本地測試郵件可以傳送成功,但是部署在阿里雲伺服器上之後,並且在安全組中配置了25埠的出入後還是不行。 原因是: 阿里雲伺服器封禁了25   解決辦法   埠號port 改成 465   加密方式&nb

The POM for XXX is invalid, transitive dependencies (if any) will not be available解決方案

今天,某個開發的環境在編譯的時候提示警告The POM for XXX is invalid, transitive dependencies (if any) will not be available,編譯失敗。 update他提交的程式碼下來之後,確實有這個問題,按照網上的一種方法,右鍵專案,mave

PHP 報錯:Deprecated: Methods with the same name as their class will not be constructor...

5.6 name soa 項目 徹底 truct 升級 使用 The 報著個錯的原因是 最近把一個項目從php5.6升級到了php7 報如下錯誤: Deprecated: Methods with the same name as their class will not

MAVEN奇葩問題was cached in the local repository, resolution will not be reattempted until

[ERROR] Non-resolvable import POM: Failure to find org.springframework.cloud:spring-cloud-dependencies:pom:Finchley.M7 in https://maven.aliyun.com/reposito

Classpath entry *.jar will not be exported or published.禁告

在eclipse的web工程中,匯入jar包時,常會遇見這問題 Classpath entry *.jar will not be exported or published. Runtime ClassNotFoundExceptions may result. 這