Springboot整合之添加Druid数据源

Druid数据源是阿里产品,具有可视化监控的功能。这次只作简单的添加和测试,且只添加一个数据源,至于多数据源的添加和使用,后续再作更新。可以新建Module,也可以在上一个Module jdbc的基础上添加。这里选择在jdbc的基础上进行添加。

  • 修改pom.xml文件,添加依赖

可到maven仓库中查找版本

        
        
            com.alibaba
            druid
            1.1.14
        
        
        
            log4j
            log4j
            1.2.17
        
  • 修改配置文件application.yml

修改后:

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/test
    driver-class-name: com.mysql.cj.jdbc.Driver

    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
    poolPreparedStatements: true
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
  • 此时已将数据源设置为druid了,但上面的设置还不可用,需要添加一个对应的配置类

package com.lf.jdbc.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

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

    //配置Druid的监控
    //1、配置一个管理后台的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        Map initParams = new HashMap<>();

        initParams.put("loginUsername", "admin");
        initParams.put("loginPassword", "123456");
//        initParams.put("allow","");//默认就是允许所有访问
//        initParams.put("deny","192.168.15.21");

        bean.setInitParameters(initParams);
        return bean;
    }


    //2、配置一个web监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter() {
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());

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

        bean.setInitParameters(initParams);

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

        return bean;
    }
}

注意各种注解的使用,且不可缺省!

关于@AutoWired,可能会提示Could not autowire. No beans of 'CustomerMapper' type found错误,但这里只是编辑检测错误,编译是正常的

  • 配置完毕,启动应用后使用配置类中设置的用户名和密码登陆http://localhost:8080/druid,可以看到整个web应用的监控信息。

Springboot整合之添加Druid数据源_第1张图片

和jdbc的测试一样,则输出:class com.alibaba.druid.pool.DruidDataSource

你可能感兴趣的:(Springboot整合之添加Druid数据源)