zoukankan      html  css  js  c++  java
  • spring boot 添加druid

    第一步:添加依赖

    <!-- druid  -->

    <dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>druid</artifactId>

    <version>1.0.18</version>

    </dependency>

    第二步:

    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

    spring.datasource.name=druid

     

    spring.datasource.druid.initialSize=5

    spring.datasource.druid.minIdle=5

    spring.datasource.druid.maxActive=20

    spring.datasource.druid.maxWait=60000

    spring.datasource.druid.timeBetweenEvictionRunsMillis=60000

    spring.datasource.druid.minEvictableIdleTimeMillis=300000

    spring.datasource.druid.validationQuery=SELECT 1 FROM t_user

    spring.datasource.druid.testWhileIdle=true

    spring.datasource.druid.testOnBorrow=true

    spring.datasource.druid.testOnReturn=false

    spring.datasource.druid.poolPreparedStatements=true

    spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20

    spring.datasource.druid.filters=stat,wall,log4j

    spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

    第三步 增加读取配置文件和创建servlet Filter

    package com.lanou.druid;

     

    import javax.sql.DataSource;

     

    import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;

    import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;

    import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;

    import org.springframework.boot.context.properties.ConfigurationProperties;

    import org.springframework.boot.jdbc.DatabaseDriver;

    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 com.alibaba.druid.support.http.StatViewServlet;

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

    @Configuration

    @ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)

    @ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true)

    public class DruidDataSourceConfiguration {

     

     

        @SuppressWarnings("unchecked")

        protected <T> T createDataSource(DataSourceProperties properties,

                                         Class<? extends DataSource> type) {

            return (T) properties.initializeDataSourceBuilder().type(type).build();

        }

     

        /**

         * @see org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Tomcat 仿写的你可以去了解

         * @param properties 读入的配置

         * @return DruidDataSource

         */

        @Bean

        @ConfigurationProperties("spring.datasource.druid")

        public com.alibaba.druid.pool.DruidDataSource dataSource(DataSourceProperties properties) {

     

            com.alibaba.druid.pool.DruidDataSource dataSource = createDataSource(

                    properties, com.alibaba.druid.pool.DruidDataSource.class);

     

            DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(properties.determineUrl());

     

            String validationQuery = databaseDriver.getValidationQuery();

            if (validationQuery != null) {

                dataSource.setTestOnBorrow(true);

                dataSource.setValidationQuery(validationQuery);

            }

     

            return dataSource;

        }

     

        /**

         * 注册一个StatViewServlet

         */

        @Bean

        public ServletRegistrationBean druidStatViewServlet(){

            //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.

            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");

     

            //添加初始化参数:initParams

            //白名单:

            servletRegistrationBean.addInitParameter("allow","127.0.0.1");

            //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.

            servletRegistrationBean.addInitParameter("deny","192.168.1.73");

            //登录查看信息的账号密码.

            servletRegistrationBean.addInitParameter("loginUsername","root");

            servletRegistrationBean.addInitParameter("loginPassword","password");

            //是否能够重置数据.

            servletRegistrationBean.addInitParameter("resetEnable","false");// 禁用HTML页面上的“Reset All”功能

            return servletRegistrationBean;

        }

     

        /**

         * 注册一个:filterRegistrationBean

         */

        @Bean

        public FilterRegistrationBean druidStatFilter(){

     

            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

            filterRegistrationBean.setName("druidWebStatFilter");

            //添加过滤规则.

            filterRegistrationBean.addUrlPatterns("/*");

            //添加忽略的格式信息.

            filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");

            return filterRegistrationBean;

        }

    }

    第四步:访问地址 http://localhost:8080/druid

  • 相关阅读:
    20080619 SQL SERVER 输入 NULL 的快捷键
    20090406 Adobe的“此产品的许可已停止工作”错误的解决办法
    20080908 Office Powerpoint 2007 不能输入中文的解决办法
    20080831 ClearGertrude Blog Skin 's cnblogs_code class
    20080603 Facebook 平台正式开放
    20080519 安装 Microsoft SQL Server 2000 时提示 创建挂起的文件操作
    test
    Linux—fork函数学习笔记
    SOA的设计理念
    Why BCP connects to SQL Server instance which start with account of Network Service fail?
  • 原文地址:https://www.cnblogs.com/xusongfeng/p/8378139.html
Copyright © 2011-2022 走看看