Springboot多資料來源自動斷開connection連線問題
阿新 • • 發佈:2019-02-07
單資料來源配置,可以採用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
新增為如下資料來源配置即可