文章目錄
- 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
這裡就可以看到配置已經生效了,同時我們也可以在sql監控檢視我們的sql語句運作狀态,友善優化。
需要注意的是使用配置yml檔案一定要嚴格的按照yml檔案的格式來寫,重要的話說三遍。格式 格式 格式,每一個冒号和空格都必須按照規範,不然會出錯。
這樣一個springboot+druid連接配接池的基本配置就配置好了。