SpringBoot学习笔记配置druid

Posted Young_Yang_Yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 

 

以上是关于SpringBoot学习笔记配置druid的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot 学习笔记 -- [spring Boot集成阿里Druid数据源,整合Mybatis搭建一个案例试试]

springboot整合redis

Druid学习笔记

SpringBoot学习--07配置Druid数据库连接池

SpringBoot学习--07配置Druid数据库连接池

SpringBoot:集成DataSource 与 Druid监控配置