SpringBoot整合Druid监控

这二天在搭建一个单服务项目,所以就想着在里面加点数据监控之类的东西。然后就看到了druid,那么下面我们就从配置开始

  • 首先我们的pom 文件里面配置maven

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.6</version>
    </dependency>
    
  • 然后在在我们application.yml里面配置数据

      spring:
      	  datasource:
              type: com.alibaba.druid.pool.DruidDataSource
              druid:
                filter: stat,wall,logging
                driver-class-name: com.mysql.cj.jdbc.Driver
                url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
                username: root
                password: root
                initial-size: 1
                min-idle: 1
                max-active: 20
                max-wait: 60000
                time-between-eviction-runs-millis: 60000
                min-evictable-idle-time-millis: 300000
                validation-query: SELECT 'X'
                test-while-idle: true
                test-on-borrow: false
                test-on-return: false
                pool-prepared-statements: false
                max-pool-prepared-statement-per-connection-size: 20
    
  • 接下来就是代码部分了

    • 新建DruidProperties

      @Data
      @ConfigurationProperties(prefix = "spring.datasource.druid")
      public class DruidProperties {
              private String url;
              private String username;
              private String password;
              private String driverClassName;
              private int initialSize;
              private int minIdle;
              private int maxActive;
              private int maxWait;
              private int timeBetweenEvictionRunsMillis;
              private int minEvictableIdleTimeMillis;
              private String validationQuery;
              private boolean testWhileIdle;
              private boolean testOnBorrow;
              private boolean testOnReturn;
              private boolean poolPreparedStatements;
              private int maxPoolPreparedStatementPerConnectionSize;
              private String filters;
              private String connectionProperties;
      }
      
    • 新建TestCoreConfig

      @Configuration
      @EnableConfigurationProperties({DruidProperties.class})
      public class TestCoreConfig {
      }
      
    • 新建DruidConfiguration

      @Slf4j
      @Configuration
      public class DruidConfiguration {
      
          @Bean
          public ServletRegistrationBean druidServlet() {
              log.info("init Druid Servlet Configuration");
              ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
              //IP白名单
              servletRegistrationBean.addInitParameter("allow", "192.168.0.119");
              //IP黑名单
              servletRegistrationBean.addInitParameter("deny", "192.168.1.100");
              //控制台管理用户
              servletRegistrationBean.addInitParameter("loginUsername", "admin");
              servletRegistrationBean.addInitParameter("loginPassword", "admin");
      
              //是否能够重置数据 禁用HTML页面上的“Reset All”功能
              servletRegistrationBean.addInitParameter("resetEnable", "false");
              return servletRegistrationBean;
          }
      
          @Bean
          public FilterRegistrationBean filterRegistrationBean() {
              FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>(new WebStatFilter());
              filterRegistrationBean.addUrlPatterns("/*");
              filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*png,*.css,*.ico,/druid/*");
              return filterRegistrationBean;
          }
      
          @Autowired
          private DruidProperties druidProperties;
      
          @Bean
          @Primary
          public DataSource dataSource() {
              DruidDataSource druidDataSource = new DruidDataSource();
              druidDataSource.setUrl(druidProperties.getUrl());
              druidDataSource.setUsername(druidProperties.getUsername());
              druidDataSource.setPassword(druidProperties.getPassword());
              druidDataSource.setDriverClassName(druidProperties.getDriverClassName());
      
              druidDataSource.setInitialSize(druidProperties.getInitialSize());
              druidDataSource.setMinIdle(druidProperties.getMinIdle());
              druidDataSource.setMaxActive(druidProperties.getMaxActive());
              druidDataSource.setMaxWait(druidProperties.getMaxWait());
              druidDataSource.setTimeBetweenEvictionRunsMillis(druidProperties.getTimeBetweenEvictionRunsMillis());
              druidDataSource.setMinEvictableIdleTimeMillis(druidProperties.getMinEvictableIdleTimeMillis());
              druidDataSource.setValidationQuery(druidProperties.getValidationQuery());
              druidDataSource.setTestWhileIdle(druidProperties.isTestWhileIdle());
              druidDataSource.setTestOnBorrow(druidProperties.isTestOnBorrow());
              druidDataSource.setTestOnReturn(druidProperties.isTestOnReturn());
              druidDataSource.setPoolPreparedStatements(druidProperties.isPoolPreparedStatements());
              druidDataSource.setMaxPoolPreparedStatementPerConnectionSize(druidProperties.getMaxPoolPreparedStatementPerConnectionSize());
              try {
                  druidDataSource.setFilters(druidProperties.getFilters());
              } catch (SQLException e) {
      
                  System.err.println("druid configuration initialization filter: " + e);
              }
              return druidDataSource;
          }
      }
      
  • 创建主类TestStartApplication

    @Slf4j
    @SpringBootApplication
    public class TestStartApplication{
    
        public static void main(String[] args) {
            ConfigurableApplicationContext context = SpringApplication.run(BootAdminStartApplication.class, args);
            String serverPort = context.getEnvironment().getProperty("server.port");
            log.info("boot admin started at http://localhost:" + serverPort);
        }
    }
    
  • 启动主类访问http://localhost:9999/druid/在这里插入图片描述

  • 用刚才设置的 admin/admin登录就好了在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,关于springboot整合druid配置,你可以按照以下步骤进行: 1. 在pom.xml文件中添加druid和jdbc依赖: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> ``` 2. 在application.properties文件中添加druid的配置: ``` # 数据源配置 spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver # Druid配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 spring.datasource.druid.max-wait=60000 spring.datasource.druid.time-between-eviction-runs-millis=60000 spring.datasource.druid.min-evictable-idle-time-millis=300000 spring.datasource.druid.validation-query=SELECT 1 FROM DUAL spring.datasource.druid.test-while-idle=true spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 spring.datasource.druid.filters=stat,wall,log4j spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # Druid监控配置 spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.reset-enable=false spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin ``` 3. 在启动类上添加注解@EnableTransactionManagement和@Bean注解的方法创建DruidDataSource: ``` @SpringBootApplication @EnableTransactionManagement public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean @ConfigurationProperties(prefix = "spring.datasource.druid") public DataSource druidDataSource() { return new DruidDataSource(); } } ``` 以上就是整合druid的配置步骤,你可以根据自己的需求进行相应的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AbelEthan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值