1. 程式人生 > 程式設計 >SpringBoot整合Druid配置(yaml版本配置檔案)詳解

SpringBoot整合Druid配置(yaml版本配置檔案)詳解

maven 配置

 <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.3</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>
    
<!--配置了日誌log4j-->
 		<dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

application.yaml 配置

spring:
 datasource:
  username: 填自己的
  url: jdbc:mysql://localhost:3306/填自己的資料庫?useUnicode=true&characterEncoding=UTF-8&useSSL=false
  driver-class-name: com.mysql.cj.jdbc.Driver
  password: "填自己的" #數字注意一定要有""包圍 eg:"123456"
  type: com.alibaba.druid.pool.DruidDataSource
  
  # 下面為連線池的補充設定,應用到上面所有資料來源中
  # 初始化大小,最小,最大
  initial-size: 5
  min-idle: 5
  max-active: 20
  # 配置獲取連線等待超時的時間
  max-wait: 60000
  # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒
  time-between-eviction-runs-millis: 60000
  # 配置一個連線在池中最小生存的時間,單位是毫秒
  min-evictable-idle-time-millis: 300000
  validation-query: SELECT 1 FROM DUAL
  test-while-idle: true
  test-on-borrow: false
  test-on-return: false
  # 開啟PSCache,並且指定每個連線上PSCache的大小
  pool-prepared-statements: true
  max-pool-prepared-statement-per-connection-size: 20
  # 配置監控統計攔截的 Filter,去掉後監控介面 SQL 無法統計,wall 用於防火牆  日誌 log4j
   filters: stat,wall,log4j  #匯入了log4j
  use-global-data-source-stat: true
  # 通過connectProperties屬性來開啟mergeSql功能;慢SQL記錄
  connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

自定義配置

自定義配置 過濾器以及後臺管理

package spring.mubei.config;

import com.alibaba.druid.pool.xa.DruidXADataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;
import java.util.HashMap;

/**
 * @author mubei
 * @date 2020/12/5
 * @description  druid 自定義配置
 */
@Configuration
public class DruidConfigration {


  @ConfigurationProperties(prefix="spring.datasource")
  @Bean
  public DataSource druidDataSource(){
    return new DruidXADataSource();
  }


  //後臺監控:web.xml  ServletRegistrationBean
  //因為SpringBoot內建了 servlet容器  所以沒有web.xml 替代方法ServletRegistrationBean
  @Bean
  public ServletRegistrationBean StatViewServlet(){
    ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");

    //後臺需要有人登入  賬號密碼配置
    HashMap<String,String> initParameters = new HashMap<>();

    //登入的兩個key是固定的
    initParameters.put("loginPassword","020323");
    initParameters.put("loginUsername","mubei");

    //允許誰可以訪問
    //空全部人可以訪問
    initParameters.put("allow","");
    //禁止某人訪問
    initParameters.put("mubei","埠");

    //設定初始化引數
    bean.setInitParameters(initParameters);
    return bean;
  }

  //filter過濾器
  @Bean
  public FilterRegistrationBean b(){
    FilterRegistrationBean bean = new FilterRegistrationBean();
    bean.setFilter(new WebStatFilter());
    //可以過濾哪些請求
    HashMap<String,String> initParameters = new HashMap<>();
    //不過濾
    initParameters.put("exclusion","*.js,*.css,/druid/**");

    bean.setInitParameters(initParameters);
    return bean;
  }


}

到此這篇關於SpringBoot整合Druid配置(yaml版本配置檔案)的文章就介紹到這了,更多相關SpringBoot整合Druid配置內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!