欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot的yml配置文件通過db2的方式整合mysql的教程

 更新時間:2020年09月03日 11:56:09   作者:哇哈哈_  
這篇文章主要介紹了springboot的yml配置文件通過db2的方式整合mysql的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatisPlus返回Map類型的集合

    mybatisPlus返回Map類型的集合

    本文主要介紹了mybatisPlus返回Map類型的集合,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • java8 LocalDate 使用詳解

    java8 LocalDate 使用詳解

    這篇文章主要介紹了java8 LocalDate 使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 解決JPA @OneToMany及懶加載無效的問題

    解決JPA @OneToMany及懶加載無效的問題

    這篇文章主要介紹了解決JPA @OneToMany及懶加載無效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringMVC攔截器的實現(xiàn)和作用及Redis登陸功能的優(yōu)化詳解

    SpringMVC攔截器的實現(xiàn)和作用及Redis登陸功能的優(yōu)化詳解

    這篇文章主要介紹了Java項目SpringMVC攔截器+Redis優(yōu)化登錄功能實現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09
  • Java SpringBoot 集成 Redis詳解

    Java SpringBoot 集成 Redis詳解

    Redis 是一個由 Salvatore Sanfilippo 寫的 key-value 存儲系統(tǒng),是跨平臺的非關(guān)系型數(shù)據(jù)庫。Redis 是一個開源的使用 ANSI C 語言編寫、遵守 BSD 協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存、分布式、可選持久性的鍵值對(Key-Value)存儲數(shù)據(jù)庫,并提供多種語言的 API
    2021-10-10
  • mybatis不加@Parm注解報錯的解決方案

    mybatis不加@Parm注解報錯的解決方案

    這篇文章主要介紹了mybatis不加@Parm注解報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 如何使用Java爬蟲批量爬取圖片

    如何使用Java爬蟲批量爬取圖片

    這篇文章主要介紹了如何使用Java爬蟲批量爬取圖片,對于爬蟲的入門來說,圖片相對來說是比較容易獲取的,因為大部分圖片都不是敏感數(shù)據(jù),所以不會遇到什么反爬措施,對于入門爬蟲來說是比較合適的,需要的朋友可以參考下
    2023-04-04
  • 利用Spring?boot+LogBack+MDC實現(xiàn)鏈路追蹤

    利用Spring?boot+LogBack+MDC實現(xiàn)鏈路追蹤

    這篇文章主要介紹了利用Spring?boot+LogBack+MDC實現(xiàn)鏈路追蹤,MDC?可以看成是一個與當(dāng)前線程綁定的哈希表,可以往其中添加鍵值對,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-04-04
  • 詳解Java8中接口的默認(rèn)方法和靜態(tài)方法

    詳解Java8中接口的默認(rèn)方法和靜態(tài)方法

    Java 8是Java語言的一個重要版本,其中引入了許多新特性和改進,其中一個值得關(guān)注的特性是接口的默認(rèn)方法和靜態(tài)方法,本文就來和大家簡單講講吧
    2023-05-05
  • 詳解Java內(nèi)存泄露的示例代碼

    詳解Java內(nèi)存泄露的示例代碼

    這篇文章通過一個Demo來簡要介紹下ThreadLocal和ClassLoader導(dǎo)致內(nèi)存泄露最終OutOfMemory的場景。下面通過示例代碼給大家分享Java內(nèi)存泄露的相關(guān)知識,感興趣的朋友一起看看吧
    2017-12-12

最新評論