springboot整合durid

本人对各种连接池了解的并不深入,也对各种连接池的效率停留在大佬们的口述中,偶尔一次机会遇到了durid,感觉它的监控界面是如此的强大,由此激发我整合durid的兴趣。durid的监控界面如下:

springboot整合durid_第1张图片

首先需要做的是引用maven依赖,每次都是按照下载数比较高的版本进行使用的(想必有很多人与我一样),此处使用的版本是1.1.1版本。



	com.alibaba
	druid
	1.1.1

将application.yml改为如下格式的配置,配置内容不多讲,注解已经写的很详细了。

server:
  port: 2048

spring:
  profiles:
    active: dev

druid:
  allow: #允许登陆的IP地址
    ip: 127.0.0.1
  login: #登陆的账户密码
    user_name: root
    password: root

---
spring:
  profiles: dev
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/xichuan?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
    # 连接池的配置信息
    # 初始化大小,最小等待连接数量,最大等待连接数量,最大连接数
    initialSize: 1
    minIdle: 1
    maxIdle: 5
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    timeBetweenEvictionRunsMillis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: true
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: false
    maxPoolPreparedStatementPerConnectionSize: 20
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,log4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    # 合并多个DruidDataSource的监控数据
    #spring.datasource.useGlobalDataSourceStat=true



添加的duridConfig配置文件,配置信息一看就知道是干什么了,其中一定要配置durid的数据源,不然无法获取到sql监控与防火墙监控。

@Configuration
public class DruidConfig {

    private static final Logger log = LoggerFactory.getLogger(DruidConfig.class);

    @Value("${druid.login.user_name}")
    private String userName;

    @Value("${druid.login.password}")
    private String password;

    @Value("${druid.allow.ip}")
    private String allowIp;

    /**必须配置数据源,不然无法获取到sql监控,与sql防火墙监控*/
    @Bean(name = "default_databaseSource")
    @ConfigurationProperties(prefix="spring.datasource")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }

    @Bean
    public ServletRegistrationBean druidServlet() {
        log.info("init Druid Servlet Configuration ");
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
        servletRegistrationBean.setServlet(new StatViewServlet());
        servletRegistrationBean.addUrlMappings("/druid/*");
        Map initParameters = new HashMap<>();
        initParameters.put("loginUsername", userName);// 用户名
        initParameters.put("loginPassword", password);// 密码
        initParameters.put("resetEnable", "false");// 禁用HTML页面上的“Reset All”功能
        //initParameters.put("allow", allowIp); // IP白名单 (没有配置或者为空,则允许所有访问)
        //initParameters.put("deny", "");// IP黑名单 (存在共同时,deny优先于allow)
        servletRegistrationBean.setInitParameters(initParameters);
        return servletRegistrationBean;
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;
    }
}

此时配置已经完成,只需要访问:http://192.168.1.190:2048/druid/login.html,使用root/root 登进登陆即可使用了。

springboot整合durid_第2张图片

 

你可能感兴趣的:(SpringBoot,springboot,项目整合及进阶,springboot,durid,连接池)