1. 程式人生 > >Springboot多資料來源自動斷開connection連線問題

Springboot多資料來源自動斷開connection連線問題

單資料來源配置,可以採用springboot的自動載入mybatis,

application.properties中配置如下:不需要特殊配置即可

@MapperScan("com.nox.dsp.dao")
採用這種自動載入dao層的形式
#spring.datasource.type = org.apache.commons.dbcp2.BasicDataSource
#初始化連線
#spring.datasource.dbcp2.initial-size = 10
#spring.datasource.dbcp2.max-wait-millis = 10000
#最大空閒連線
#spring.datasource.dbcp2.max-idle=20
#最小空閒連線 #spring.datasource.dbcp2.min-idle=5 #spring.datasource.dbcp2.pool-prepared-statements = true #spring.datasource.dbcp2.max-open-prepared-statements = 20 #檢測資料庫的查詢語句 #spring.datasource.dbcp2.validation-query = select 1 from dual #(即在獲取Connection物件時檢測其可用性) 這樣會影響效能,但是這個配置是最有效的。 #spring.datasource.dbcp2.test-on-borrow = true
#設定當連線被歸還時,是否要提交所有還未完成的事務 #spring.datasource.dbcp2.test-on-return = false #有些資料庫連線的時候有超時限制(mysql連線在8小時後斷開),或者由於網路中斷等原因,連線池的連線會出現失效的情況,這時候設定一個testWhileIdle引數為true,可以保證連線池內部定時檢測連線的可用性,不可用的連線會被拋棄或者重建,最大情況的保證從連線池中得到的Connection物件是可用的 #spring.datasource.dbcp2.test-while-idle = true #每隔五分鐘檢測空閒超過10分鐘的連線 #spring.datasource.dbcp2.min-evictable-idle-time-millis = 600000
#spring.datasource.dbcp2.time-between-eviction-runs-millis = 300000
當切換到多資料來源的時候:

去掉此註解:

@MapperScan("com.nox.dsp.dao")
需要分別轉裝載兩個資料來源:具體如何載入可以參考http://blog.csdn.net/u014078154/article/details/78985102這個
#mysql dsp庫
spring.datasource.dsp.url = jdbc:mysql://XXXX
spring.datasource.dsp.username = ad
spring.datasource.dsp.password = ad
spring.datasource.dsp.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.dsp.max-idle = 10
spring.datasource.dsp.max-wait = 10000
spring.datasource.dsp.min-idle = 5
spring.datasource.dsp.initial-size = 5
spring.datasource.dsp.validation-query = SELECT 1
spring.datasource.dsp.test-on-borrow = false
spring.datasource.dsp.test-while-idle = true
spring.datasource.dsp.time-between-eviction-runs-millis = 18800
spring.datasource.dsp.type = com.alibaba.druid.pool.DruidDataSource#mysql operation庫
spring.datasource.operation.url = jdbc:mysql://XXX
spring.datasource.operation.username = ad
spring.datasource.operation.password = ad
spring.datasource.operation.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.operation.max-idle = 10
spring.datasource.operation.max-wait = 10000
spring.datasource.operation.min-idle = 5
spring.datasource.operation.initial-size = 5
spring.datasource.operation.validation-query = SELECT 1
spring.datasource.operation.test-on-borrow = false
spring.datasource.operation.test-while-idle = true
spring.datasource.operation.time-between-eviction-runs-millis = 18800
spring.datasource.operation.type = com.alibaba.druid.pool.DruidDataSource

新增為如下資料來源配置即可