天天看點

SpringBoot+Druid連接配接池1. Maven導入依賴包2.配置yml檔案

文章目錄

  • 1. Maven導入依賴包
  • 2.配置yml檔案

最近因為實際要求搭了一個springboot架構+druid連接配接池的架子,因為之前沒有使用過druid連接配接池,把過程記錄一下,如果有什麼不對的地方,請各位指教。

1. Maven導入依賴包

首先當然是引入依賴包,我們用Maven自動幫我們導包。依賴如下

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
</dependency>
           

這就是我寫架構有關于druid部分所引入的依賴,因為我使用的是mysql資料庫是以引入的mysql的相關包。

2.配置yml檔案

我們這裡使用speingboot架構的yml檔案進行配置,這是我配置的yml檔案,其中也包含了我搭架子的mybatis配置和線程池的配置。

spring:
  datasource:
    #  配置這個屬性的意義在于,如果存在多個資料源,監控的時候可以通過名字來區分開來。 
如果沒有配置,将會生成一個名字,格式是:"DataSource-" + System.identityHashCode(this)
    name:test
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://127.0.0.1:3306/自己使用的資料庫
    username: root
    password: 
      # 下面為連接配接池的補充設定,應用到上面所有資料源中
      # 初始化大小,最小,最大
      connection-error-retry-attempts: 0
      not-full-timeout-retry-count: -1
      initial-size: 5
      min-idle: 5
      max-active: 20
      # 配置擷取連接配接等待逾時的時間
      max-wait: 60000
      # 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接配接,機關是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一個連接配接在池中最小生存的時間,機關是毫秒
      min-evictable-idle-time-millis: 300000
      # 用來檢測連接配接是否有效的sql,要求是一個查詢語句
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # 打開PSCache,并且指定每個連接配接上PSCache的大小
      pool-prepared-statements: true
      #配置監控統計攔截的filters,去掉後監控界面sql無法統計,'wall'用于防火牆
      max-pool-prepared-statement-per-connection-size: 20
      filters: stat,wall
      use-global-data-source-stat: true
      # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
      connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
           

常用參數就是這些,具體參數可以到官網上檢視

需要注意的是,雖然我們配置了druid連接配接池的其它屬性,但是不會生效。因為預設是使用的java.sql.Datasource的類來擷取屬性的,有些屬性datasource沒有。如果我們想讓配置生效,需要手動建立Druid的配置類

@Bean
    @ConfigurationProperties("spring.datasource")
    public DataSource druid(){
        return new DruidDataSource();
    }

    /**
     * 配置監控伺服器
     * @return 傳回監控注冊的servlet對象
     */
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        // 添加IP白名單
        servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        // 添加IP黑名單,當白名單和黑名單重複時,黑名單優先級更高
        servletRegistrationBean.addInitParameter("deny", "");
        // 添加控制台管理使用者
        servletRegistrationBean.addInitParameter("loginUsername", "root");
        servletRegistrationBean.addInitParameter("loginPassword", "123456");
        // 是否能夠重置資料
        servletRegistrationBean.addInitParameter("resetEnable", "false");
        return servletRegistrationBean;
    }

    /**
     * 配置服務過濾器
     * @return 傳回過濾器配置對象
     */
    @Bean
    public FilterRegistrationBean statFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
        //添加過濾規則
        filterRegistrationBean.addUrlPatterns("/*");
        //忽略過濾格式
        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,");
        return filterRegistrationBean;
    }
           

輸入http://127.0.0.1:8080/weily/druid/index.html,登入就可以看到druid連接配接池的監控,賬号密碼是無名自己配置的,我這裡配置的是root和123456

SpringBoot+Druid連接配接池1. Maven導入依賴包2.配置yml檔案

這裡就可以看到配置已經生效了,同時我們也可以在sql監控檢視我們的sql語句運作狀态,友善優化。

SpringBoot+Druid連接配接池1. Maven導入依賴包2.配置yml檔案

需要注意的是使用配置yml檔案一定要嚴格的按照yml檔案的格式來寫,重要的話說三遍。格式 格式 格式,每一個冒号和空格都必須按照規範,不然會出錯。

這樣一個springboot+druid連接配接池的基本配置就配置好了。