Spring整合Mybatis使用時的坑

2021-09-07 15:40:12 字數 2533 閱讀 9338

版本:spring:3.1.4、mybatis:3.1.1、mybatis-spring:1.1.1;

背景:config.properties配置檔案資訊

properties**  

##資料庫(mysql|mssql|oracle...)  

environment=mysql  

jdbc.driver=com.mysql.jdbc.driver  

jdbc.url=jdbc:mysql:  

jdbc.user=root  

jdbc.password=root  

#初始化連線(根據實際訪問量設定大小)  

jdbc.initialsize=10

#最大空閒連線(根據實際訪問量設定大小)  

jdbc.maxidle=50

#最小空閒連線(根據實際訪問量設定大小)  

jdbc.minidle=10

#最大連線數量(根據實際訪問量設定大小)  

jdbc.maxactive=200

spring配置資訊(擷取部分)

xml**  

<

context:property-placeholder

location="classpath:config.properties"

/>

<

bean

id="datasource"

class="org.apache.commons.dbcp.basicdatasource"

destroy-method="close"

>

<

property

name="driverclassname"

value="$"

/>

<

property

name="url"

value="$"

/>

<

property

name="username"

value="$"

/>

<

property

name="password"

value="$"

/>

<

property

name="initialsize"

value="$"

/>

<

property

name="maxidle"

value="$"

/>

<

property

name="minidle"

value="$"

/>

<

property

name="maxactive"

value="$"

/>

<

property

name="removeabandoned"

value="true"

/>

<

property

name="removeabandonedtimeout"

value="120"

/>

<

property

name="maxwait"

value="3000"

/>

bean

>

<

bean

id="sqlsessionfactory"

class="org.mybatis.spring.sqlsessionfactorybean"

>

<

property

name="datasource"

ref="datasource"

/>

<

property

name="configlocation"

value="classpath:mybatis-config.xml"

/>

<

property

/>

bean

>

<

bean

>

<

property

name="basepackage"

/>

<

property

name="sqlsessionfactory"

ref="sqlsessionfactory"

/>

bean

>

此時,啟動會報異常,$這樣的表示式獲取不到properties裡面的值,

方法一:

修改為

原理:使用sqlsessionfactorybeanname注入,不會立即初始化sqlsessionfactory, 所以不會引發提前初始化問題。

方法二:

直接刪掉

注意:在沒有配置這一行時,必須配置乙個以

sqlsessionfactory

命名的org.mybatis.spring.sqlsessionfactorybean。

通過Spring整合MyBatis

step1.導包 step2.新增spring配置檔案 bean來代替 sqlsessionfactorybean step3.配置sqlsessionfactorybean step4.實體類step5.對映檔案spring容器裡面 預設的id是首字母小寫之後的介面名 step8.啟動spring...

spring整合MyBatis總結

service層的物件建立的底層實現,是依賴spring ioc 的bean id來建立,不管是顯示bean,還是自動裝配。再底層細緻,就是反射 無參構造方法 層與層之間都必須有需要有spring bean 的定義 不管是顯示定義,還是隱藏定義 類與類之間的依賴 原始是通過在配置檔案裡寫明ref實現...

Spring整合MyBatis 基礎

基礎準備工作 整合準備工作 spring配置檔案,加上context命名空間,用於載入properties檔案 開啟載入properties檔案 配置資料來源druid 備用 定義service層bean,注入dao層bean dao的bean無需定義,使用 自動生成 整合工作 匯入spring整合...