springboot的yml配置文件通過db2的方式整合mysql的教程
springboot整合MySQL很簡單,多數(shù)據(jù)源就master,slave就行了,但是在整合DB2就需要另起一行,以下是同一個yml文件
先配置MySQL,代碼如下
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: # 主庫數(shù)據(jù)源 master: url: jdbc:mysql://localhost:3308/<數(shù)據(jù)庫名>?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 # 從庫數(shù)據(jù)源 slave: # 從數(shù)據(jù)源開關(guān)/默認(rèn)關(guān)閉 enabled: true url: jdbc:mysql://localhost:3308/<數(shù)據(jù)庫名>?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 # 初始連接數(shù) initialSize: 5 # 最小連接池數(shù)量 minIdle: 10 # 最大連接池數(shù)量 maxActive: 20 # 配置獲取連接等待超時的時間 maxWait: 60000 # 配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一個連接在池中最小生存的時間,單位是毫秒 minEvictableIdleTimeMillis: 300000 # 配置一個連接在池中最大生存的時間,單位是毫秒 maxEvictableIdleTimeMillis: 900000 # 配置檢測連接是否有效 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 設(shè)置白名單,不填則允許所有訪問 allow: url-pattern: /druid/* # 控制臺管理用戶名和密碼 login-username: login-password: filter: stat: enabled: true # 慢SQL記錄 log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true
接下來配置DB2
second: spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.ibm.db2.jcc.DB2Driver url: jdbc:db2://<DB2的IP>:<端口>/<數(shù)據(jù)庫名>:currentSchema=<所要連接的schema名>; username: <用戶名> password: <密碼> # 初始連接數(shù) initialSize: 5 # 最小連接池數(shù)量 minIdle: 10 # 最大連接池數(shù)量 maxActive: 20 # 配置獲取連接等待超時的時間 maxWait: 60000 # 配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一個連接在池中最小生存的時間,單位是毫秒 minEvictableIdleTimeMillis: 300000 # 配置一個連接在池中最大生存的時間,單位是毫秒 maxEvictableIdleTimeMillis: 900000 # 配置檢測連接是否有效 注意這里DUAL是檢測的表名,可以是當(dāng)前schema下的任意一張表 validationQuery: SELECT 1 FROM **<檢測表名>** testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 設(shè)置白名單,不填則允許所有訪問 allow: url-pattern: /druid/* # 控制臺管理用戶名和密碼 login-username: login-password: filter: stat: enabled: true # 慢SQL記錄 log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true
OK這樣就能通過Config獲取到了,下面是Config源碼
package com.map.framework.config; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties; import com.alibaba.druid.util.Utils; import com.map.common.enums.DataSourceType; import com.map.common.utils.spring.SpringUtils; import com.map.framework.config.properties.DruidProperties; import com.map.framework.datasource.DynamicDataSource; import org.springframework.jdbc.datasource.DataSourceTransactionManager; /** * druid 配置多數(shù)據(jù)源 * * */ @Configuration public class DruidConfig { @Bean @ConfigurationProperties("spring.datasource.druid.master") public DataSource masterDataSource(DruidProperties druidProperties) { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); return druidProperties.dataSource(dataSource); } @Bean @ConfigurationProperties("spring.datasource.druid.slave") @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true") public DataSource slaveDataSource(DruidProperties druidProperties) { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); return druidProperties.dataSource(dataSource); } @Bean @ConfigurationProperties("second.spring.datasource") public DataSource db2DataSource(DruidProperties druidProperties) { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); return druidProperties.dataSource(dataSource); } @Bean(name = "dynamicDataSource") @Primary public DynamicDataSource dataSource(DataSource masterDataSource) { Map<Object, Object> targetDataSources = new HashMap<>(); targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); setDataSource(targetDataSources, DataSourceType.DB2.name(), "db2DataSource"); return new DynamicDataSource(masterDataSource, targetDataSources); } /** * 設(shè)置數(shù)據(jù)源 * * @param targetDataSources 備選數(shù)據(jù)源集合 * @param sourceName 數(shù)據(jù)源名稱 * @param beanName bean名稱 */ public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName) { try { DataSource dataSource = SpringUtils.getBean(beanName); targetDataSources.put(sourceName, dataSource); } catch (Exception e) { } } }
這就是我整合MySQL和DB2時遇到的問題,記錄一下
總結(jié)
到此這篇關(guān)于springboot的yml配置文件通過db2的方式整合mysql的教程的文章就介紹到這了,更多相關(guān)springboot yml配置文件整合mysql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- IDEA創(chuàng)建SpringBoot項目整合mybatis時mysql-connector-java報錯異常的詳細(xì)分析
- SpringBoot整合Mysql和Redis的詳細(xì)過程
- springboot整合JPA訪問Mysql的實現(xiàn)方法
- SpringBoot整合Sharding-JDBC實現(xiàn)MySQL8讀寫分離
- Springboot整合camunda+mysql的集成流程分析
- SpringBoot整合Flyway實現(xiàn)數(shù)據(jù)庫的初始化和版本管理操作
- Springboot 使用maven release插件執(zhí)行版本管理及打包操作
- 如何在spring boot項目中使用Spring Security的BCryptPasswordEncoder類進行相同密碼不同密文的加密和驗證
相關(guān)文章
SpringMVC攔截器的實現(xiàn)和作用及Redis登陸功能的優(yōu)化詳解
這篇文章主要介紹了Java項目SpringMVC攔截器+Redis優(yōu)化登錄功能實現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09利用Spring?boot+LogBack+MDC實現(xiàn)鏈路追蹤
這篇文章主要介紹了利用Spring?boot+LogBack+MDC實現(xiàn)鏈路追蹤,MDC?可以看成是一個與當(dāng)前線程綁定的哈希表,可以往其中添加鍵值對,下文詳細(xì)介紹需要的小伙伴可以參考一下2022-04-04詳解Java8中接口的默認(rèn)方法和靜態(tài)方法
Java 8是Java語言的一個重要版本,其中引入了許多新特性和改進,其中一個值得關(guān)注的特性是接口的默認(rèn)方法和靜態(tài)方法,本文就來和大家簡單講講吧2023-05-05