0
点赞
收藏
分享

微信扫一扫

springboot整合Druid

芒果六斤半 2022-04-05 阅读 64

Druid简介

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

Druid 可以很好的监控 DB 池连接和 SQL 的执行情况。

Github地址:https://github.com/alibaba/druid/

配置数据源

1、添加上 Druid 数据源依赖。

<dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.2.6</version>
    </dependency>
</dependencies>

2、连接数据源

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
      username: root
      password: root

配置项中,在datasource下面并不是直接配置url这些属性的,而是先配置了一个druid节点,然后再配置的url这些东西。 除了这4个常规配置外,还有druid专用的其他配置。通过提示功能可以打开druid相关的配置查阅

3.添加 DruidDataSource 组件到容器中,并绑定属性; 


@ConfigurationProperties(prefix = "spring.datasource")
@Bean//组件
public DataSource druidDataSource() {
    return new DruidDataSource();
}

配置Druid数据源监控 :

设置 Druid 的后台管理页面,比如 登录账号、密码 等;配置后台管理;

@Bean
public ServletRegistrationBean statViewServlet(){
    ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");

    Map<String,String> initParams = new HashMap<>();

    initParams.put("Username","小胖");
    initParams.put("Password","123456");
    initParams.put("allow","");
    //initParams.put("allow", "localhost"):
    initParams.put("deny","");
    //设置初始化参数
    bean.setInitParameters(initParams);
    return bean;
}

配置 Druid web 监控 filter 过滤器 :

@Bean
public FilterRegistrationBean webStatFilter(){
    FilterRegistrationBean bean = new FilterRegistrationBean();
    bean.setFilter(new WebStatFilter());
    //exclusions:设置哪些请求进行过滤排除掉,从而不进行统计
    Map<String,String> initParams = new HashMap<>();
    initParams.put("exclusions","*.js,*.css,/druid/*");
    bean.setInitParameters(initParams);
    //"/*" 表示过滤所有请求
    bean.setUrlPatterns(Arrays.asList("/*"));
    return  bean;
}

controller层:

@RestController
@RequestMapping("/user")
public class jsbcController {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @GetMapping("/userList")
    public List<Map<String, Object>> userList(){
        String sql = "select * from db1.user";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        return maps;
    }

 总结:

  1. 整合Druid需要导入Druid对应的starter
  2. 根据Druid提供的配置方式进行配置
  3. 整合第三方技术通用方式

 

举报

相关推荐

0 条评论