SpringBoot整合Druid

一、springboot整合druid示例

按需配置即可,主要用作监控

Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。

Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。

 1、pom依赖

<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid-spring-boot-starter</artifactId>
      <version>${druid.version}</version>
</dependency>

 2、切换数据源(配置数据库), Spring Boot 2.0 以上默认使用 com.zaxxer.hikari.HikariDataSource 数据源

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource # 自定义数据源
  druid:
    useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据

  3、添加配置注入(相关的配置可以读取数据库,专门存一个config表)

@Configuration
public class DruidDBConfig {
    @Autowired
    WallFilter wallFilter;

    @Bean     //声明其为Bean实例
    @Primary  //在同样的DataSource中,首先使用被标注的DataSource
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        DruidDataSource datasource = new DruidDataSource();
        List <Filter> filters = new ArrayList <>();
        filters.add(wallFilter);
        datasource.setProxyFilters(filters);
        return datasource;
    }
    @Bean(name = "wallFilter")
    @DependsOn("wallConfig")
    WallFilter wallFilter(WallConfig wallConfig) {
        WallFilter wfilter = new WallFilter();
        wfilter.setConfig(wallConfig);
        return wfilter;
    }
    @Bean(name = "wallConfig")
    WallConfig wallFilterConfig() {
        WallConfig wc = new WallConfig();
        wc.setMultiStatementAllow(true);
        return wc;
    }
    //配置 Druid 监控管理后台的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        Map<String, String> initParams = new HashMap<>();
        initParams.put("loginUsername", "admin"); //后台管理界面的登录账号
        initParams.put("loginPassword", "123456"); //后台管理界面的登录密码
        initParams.put("allow", "");//后台允许谁可以访问:localhost本机可以访问、""或者null允许所有访问
        //设置初始化参数,如黑名单、白名单
        bean.setInitParameters(initParams);
        return bean;
    }
}

 4、访问路径:http://ip:端口druid/login.html

二、Junit单元测试

 1、pom依赖  

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
</dependency>

  2、方法上直接 @Test  运行(可能使用得少,自我感觉不如main方法或者接口测试强)

posted on 2020-05-26 18:00  fuanfei  阅读(372)  评论(0)    收藏  举报