SpringBoot學習筆記(二)配置druid


第一步:引入相關依賴,全部依賴都是上一篇springboot+mybatis依賴的基礎上,再加上下邊的依賴,如下:

<!-- Druid數據庫連接池組件 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.18</version>
</dependency>

注意,由於druid的配置還需要一些注解,比如@WebInitParam @WebFilter 等,它們在spring boot里來自於tomcat-embed-core包,而該包又來自於spring-boot-starter-web,所以,除了上邊的依賴以外,一定要保證spring-boot-starter-web 的引入,我項目引入具體如下:

<!-- Spring Boot Web 依賴 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 

第二步:再springboot項目的配置文件application.yml文件中加入如下內容:

spring:
  ##數據庫連接信息
  datasource:
    url: jdbc:mysql://localhost:3306/young
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    ###################以下為druid增加的配置###########################
    type: com.alibaba.druid.pool.DruidDataSource
    # 下面為連接池的補充設置,應用到上面所有數據源中
    # 初始化大小,最小,最大
    initialSize: 5
    minIdle: 5
    maxActive: 20
    # 配置獲取連接等待超時的時間
    maxWait: 60000
    # 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一個連接在池中最小生存的時間,單位是毫秒
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    # 打開PSCache,並且指定每個連接上PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    # 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用於防火牆
    filters: stat,wall,log4j
    # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    # 合並多個DruidDataSource的監控數據
    useGlobalDataSourceStat: true
    ###############以上為配置druid添加的配置########################################

 

第三步:還需要添加三個配置類,如下:

package com.young.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource;

import javax.sql.DataSource;

/**
 * 配置druid需要的配置類,引入application.properties文件中以spring.datasource開頭的信息
 * 因此需要在application.properties文件中配置相關信息。
 *
 * @author young
 */
@Configuration
public class DruidConfig {

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

}

上圖可以看出只是將DataSource對象的實現類變為了DruidDataSource對象

下圖是過濾規則的配置

package com.young.config;

import com.alibaba.druid.support.http.WebStatFilter;

import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;

/**
 * 配置druid過濾規則
 * @author young
 *
 */
@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
        initParams={
                @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略資源
        })
public class DruidStatFilter extends WebStatFilter{
}

以上三個類配置完之后,需要在啟動類多添加一個注解,既@ServletComponentScan

package com.young;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication
@ServletComponentScan //配置druid必須加的注解,如果不加,訪問頁面打不開,filter和servlet、listener之類的需要單獨進行注冊才能使用,spring boot里面提供了該注解起到注冊作用
@MapperScan("com.young.mapper")//必須加這個,不加報錯,如果不加,也可以在每個mapper上添加@Mapper注釋
public class StartApplication {

	public static void main(String[] args) {
		SpringApplication.run(StartApplication.class, args);
	}
}

 

第四步:以上配置完成后,啟動項目以后,可以訪問druid頁面了,比如我的項目端口號是8080,我的訪問頁面如下:(我沒有配置項目名,springboot默認頁面從“/”開始)

 

賬號密碼即為配置類中配置的admin

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM