SpringBoot入門之集成Druid的方法示例
Druid:為監(jiān)控而生的數(shù)據(jù)庫連接池.這篇先了解下它的簡單使用,下篇嘗試用它做多數(shù)據(jù)源配置。
主要參考:https://github.com/alibaba/druid/wiki/
常見問題https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
一、引入依賴
這里看其他博客都是引用的Druid,由于是使用springboot集成,這里參考druid官方文檔,用的是druid-spring-boot-starter。
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency>
二、設(shè)置屬性
這里用的demo還是在上一博客基礎(chǔ)上進(jìn)行的修改,所以已經(jīng)配置上了數(shù)據(jù)庫連接和mybatis。
spring.mvc.view.prefix=/view/ spring.mvc.view.suffix=.jsp mybatis.type-aliases-package=com.example.model mybatis.config-location=classpath:mybatis/mybatis-config.xml mybatis.mapper-locations=classpath:mybatis/mapper/*.xml #spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver #spring.datasource.url = jdbc:mysql://localhost:3306/mybatis spring.datasource.url =jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username = root spring.datasource.password = 123456 #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.max-active=20 spring.datasource.druid.initial-size=1 spring.datasource.druid.max-wait=60000 spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 spring.datasource.druid.min-idle=1 spring.datasource.druid.time-between-eviction-runs-millis=60000 spring.datasource.druid.min-evictable-idle-time-millis=300000 spring.datasource.druid.validation-query=select 1 from dual spring.datasource.druid.test-while-idle=true spring.datasource.druid.test-on-borrow=true spring.datasource.druid.test-on-return=true
這里配置與其他有的博客不太一樣,spring.datasource后面多了個(gè)druid,屬性名稱也有一些變化。
三、配置連接池的監(jiān)控和慢sql處理
這里只需要在啟動(dòng)類同級(jí)目錄下增加一個(gè)class類配置即可。這里創(chuàng)建了DruidConfiguration類,這里配置了WebStatFilter配置和StatViewServlet配置.
package com.example.demo; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.*; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; @Configuration public class DruidConfiguration { @Bean public ServletRegistrationBean statViewServlet(){ //創(chuàng)建servlet注冊實(shí)體 ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); //設(shè)置ip白名單 servletRegistrationBean.addInitParameter("allow","127.0.0.1"); //設(shè)置ip黑名單,如果allow與deny共同存在時(shí),deny優(yōu)先于allow servletRegistrationBean.addInitParameter("deny","192.168.0.19"); //設(shè)置控制臺(tái)管理用戶 servletRegistrationBean.addInitParameter("loginUsername","druid"); servletRegistrationBean.addInitParameter("loginPassword","123456"); //是否可以重置數(shù)據(jù) servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } @Bean public FilterRegistrationBean statFilter(){ //創(chuàng)建過濾器 FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //設(shè)置過濾器過濾路徑 filterRegistrationBean.addUrlPatterns("/*"); //忽略過濾的形式 filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; } }
四、測試
這里先啟動(dòng)應(yīng)用,然后在瀏覽器輸入http://127.0.0.1:8080/druid/index.html,就會(huì)顯示登錄頁面,輸入上面類配置的密碼即可登錄.
然后輸入上一博客顯示用戶列表的url:http://localhost:8080/user/alluser.do,再看到druid頁面,查看SQL監(jiān)控就會(huì)有剛才執(zhí)行的sql信息,URL監(jiān)控和Session監(jiān)控也有對(duì)應(yīng)的信息,由于這沒配置Spring監(jiān)控所以Spring監(jiān)控的信息,對(duì)于Spring監(jiān)控會(huì)在以后補(bǔ)充,下一篇準(zhǔn)備是使用druid配置多數(shù)據(jù)源。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis實(shí)現(xiàn)傳入多個(gè)參數(shù)的四種方法詳細(xì)講解
這篇文章主要介紹了Mybatis實(shí)現(xiàn)傳入多個(gè)參數(shù)的四種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01java編譯時(shí)指定classpath的實(shí)現(xiàn)方法
在Java編程中,classpath是用于指定Java虛擬機(jī)在運(yùn)行時(shí)查找類文件的路徑,本文主要介紹了java編譯時(shí)指定classpath的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10Java的動(dòng)態(tài)代理模式之Cglib代理詳解
這篇文章主要介紹了Java的動(dòng)態(tài)代理模式之Cglib代理詳解,Cglib代理也叫作?子類代理,它是在內(nèi)存中構(gòu)建一個(gè)子類對(duì)象從而實(shí)現(xiàn)對(duì)目標(biāo)對(duì)象功能擴(kuò)展,?有些書也將Cglib代理歸屬到動(dòng)態(tài)代理,需要的朋友可以參考下2023-11-11IDEA使用Gradle構(gòu)建SpringBoot項(xiàng)目工程的詳細(xì)教程
這篇文章主要介紹了IDEA使用Gradle構(gòu)建SpringBoot項(xiàng)目工程的教程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08