SpringBoot整合Druid數(shù)據(jù)源

Druid介紹: Druid是阿里巴巴開源平臺(tái)上一個(gè)數(shù)據(jù)庫連接池實(shí)現(xiàn),它不但結(jié)合了C3P0、DBCP、PROXOOL等數(shù)據(jù)庫連接池的優(yōu)點(diǎn),同時(shí)還加入了日志監(jiān)控,可以分別監(jiān)控DB池連接和SQL的執(zhí)行情 況,是一款針對(duì)監(jiān)控而生的數(shù)據(jù)庫連接池

環(huán)境:
IDEA版本2017.3.1 x64
JDK1.8
SpringBoot2.1.1
Druid1.1.8

流程概括:

  • 利用Spring Initializr創(chuàng)建一個(gè)springboot項(xiàng)目
  • pom添加druid數(shù)據(jù)源依賴
  • 配置Druid數(shù)據(jù)源屬性文件
  • 實(shí)現(xiàn)Druid的配置類
  • 啟動(dòng),訪問localhost:8080/druid 進(jìn)入druid數(shù)據(jù)源監(jiān)控系統(tǒng)

一、利用Spring Initializr(需要連網(wǎng))創(chuàng)建一個(gè)springboot項(xiàng)目


最后選擇組件時(shí),把mysql和web勾上


二、pom添加druid數(shù)據(jù)源依賴

在pom.xml添加druid依賴

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

三、配置Druid數(shù)據(jù)源屬性文件

創(chuàng)建application.yml全局配置文件,配置數(shù)據(jù)源參數(shù),或者在application.properties配置亦可

spring:
  datasource:
#   數(shù)據(jù)源基本配置
    username: yourusername
    password: yourpassword
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://ip:3306/springboot_druid
    type: com.alibaba.druid.pool.DruidDataSource
#   數(shù)據(jù)源其他配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
#   配置監(jiān)控統(tǒng)計(jì)攔截的filters,去掉后監(jiān)控界面sql無法統(tǒng)計(jì),'wall'用于防火墻
    filters: stat,wall
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

四、實(shí)現(xiàn)Druid的配置類

需要編寫一個(gè)配置類,添加數(shù)據(jù)源組件

@Configuration
public class DruidConfig {

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

    //配置Druid的監(jiān)控
    //1、配置一個(gè)管理后臺(tái)的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        Map<String,String> initParams = new HashMap<>();

        initParams.put("loginUsername","admin");
        initParams.put("loginPassword","123456");
        initParams.put("allow","");//默認(rèn)就是允許所有訪問
        initParams.put("deny","192.168.15.21");

        bean.setInitParameters(initParams);
        return bean;
    }


    //2、配置一個(gè)web監(jiān)控的filter
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());

        Map<String,String> initParams = new HashMap<>();
        initParams.put("exclusions","*.js,*.css,/druid/*");

        bean.setInitParameters(initParams);

        bean.setUrlPatterns(Arrays.asList("/*"));

        return  bean;
    }
}

五、啟動(dòng)springboot應(yīng)用,訪問localhost:8080/druid 進(jìn)入druid數(shù)據(jù)源監(jiān)控系統(tǒng)

訪問成功代表數(shù)據(jù)源整合成功,訪問之前可以編寫持久層訪問數(shù)據(jù)庫,Druid會(huì)顯示sql語句以及執(zhí)行次數(shù)

登入頁


用戶名和密碼在配置類中填寫的賬號(hào)和密碼
登入后首頁


更多Spring Boot整合可瀏覽此博客:malizhi.cn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容