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

  • 相关阅读:
    初学JS——利用JS制作的别踩白块儿(街机模式) 小游戏
    对于大数据量的Json解析
    Json数据中的特殊字符处理
    移动端总结和手机兼容问题
    在DW 5.5+PhoneGap+Jquery Mobile下搭建移动开发环境
    HTML5所有标签汇总
    二叉树
    二分查找
    归并排序
    希尔排序
  • 原文地址:https://www.cnblogs.com/xusongfeng/p/8378139.html
Copyright © 2011-2022 走看看