配置Druid

配置Druid

  1. pom

     <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.2.6</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/log4j/log4j 监控需要log4j-->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
    
  2. application.yaml

    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource#使用druid
    
    
        #Spring Boot 默认是不注入这些属性值的,需要自己绑定
        #druid 数据源专有配置
        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,stat:监控统计、log4j:日志记录、wall:防御sql注入
        #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
        #则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
        filters: stat,wall,log4j
        maxPoolPreparedStatementPerConnectionSize: 20
        useGlobalDataSourceStat: true
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
    
    
    1. DruidConfig

      package com.example.config;
      
      import com.alibaba.druid.pool.DruidDataSource;
      import com.alibaba.druid.support.http.StatViewServlet;
      import org.springframework.boot.context.properties.ConfigurationProperties;
      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.HashMap;
      import java.util.Map;
      
      @Configuration//配置类
      public class DruidConfig    {
      
            @ConfigurationProperties(prefix = "spring.datasource")
            @Bean
          public DataSource druidDataSource(){
              return new DruidDataSource();
          }
      
          @Bean
          public ServletRegistrationBean servletRegistration(){
              ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
              Map<String, String> initParams = new HashMap<>();
              initParams.put("loginUsername", "admin"); //后台管理界面的登录账号
              initParams.put("loginPassword", "123456"); //后台管理界面的登录密码
      
              //后台允许谁可以访问
              //initParams.put("allow", "localhost"):表示只有本机可以访问
              //initParams.put("allow", ""):为空或者为null时,表示允许所有访问
              initParams.put("allow", "");
              //deny:Druid 后台拒绝谁访问
              //initParams.put("kuangshen", "192.168.1.20");表示禁止此ip访问
      
              //设置初始化参数
              bean.setInitParameters(initParams);
              return bean;
          }
      }
      
      

Reason: java.lang.ClassNotFoundException: org.apache.log4j.Logger log4j没有加

posted @ 2021-08-20 23:12  是星辰闪耀  阅读(175)  评论(0编辑  收藏  举报