Druid数据源还能这么用?

SpringBoot实现Druid监控功能

用了这么久阿里的Druid数据源,今天才知道,原来Druid还能这么用!
(https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)中文官网
在这里插入图片描述
在官网上找的一句话,话不多说,直接实操

创建一个SpringBoot的Web项目,然后导入依赖

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>

一个是mysql的,一个是Druid的。然后配置yml(或者yaml,properties)

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/person?serverTimezone=UTC&useUnicode=true@characterEncoding=utf-8
    type: com.alibaba.druid.pool.DruidDataSource

测试一下数据库连接是否成功,此处省略一张图

配置DruidConfig(配置之前先将log4j依赖导入)

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDateSource(){
        return new DruidDataSource();
    }

    @Bean
    public ServletRegistrationBean druidServletRegistrationBean(){
        ServletRegistrationBean<Servlet> servletRegistrationBean = 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("aaa", "192.168.1.20");表示禁止此ip访问

        servletRegistrationBean.setInitParameters(initParams);
        return servletRegistrationBean;
    }

    //配置 Druid 监控 之  web 监控的 filter
//    WebStatFilter:用于配置Web和Druid数据源之间的管理关联监控统计
    @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/*");
        // 配置profileEnable能够监控单个url调用的sql列表。
        initParams.put("profileEnable","true");
        // session统计功能
        initParams.put("sessionStatEnable","true");
        bean.setInitParameters(initParams);

        //"/*" 表示过滤所有请求
        bean.setUrlPatterns(Arrays.asList("/*"));
        return bean;
    }

}

创建一个Controller测试

@Controller
public class JdbcController {


    @Autowired
    JdbcTemplate jdbcTemplate;

    @GetMapping("/emplist")
    @ResponseBody
    public List<Map<String,Object>> empList(){
        String sql = "select * from book";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        return maps;
    }
	// 如果返回页面,需要导入thymeleaf依赖,在templates目录下创建页面
    @RequestMapping("/hello")
    public String hello(){
        return "success";
    }
}

启动项目,先访问一下sql,然后在访问一下页面

在这里插入图片描述

在这里插入图片描述

重点:访问localhost:8080/druid

在这里插入图片描述
用代码里写的用户名密码进行登录,我的是admin 123456
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以在不同的模块查看到刚刚测试的请求信息和一些监控到的信息。

更多使用,请参考官方文档(开头也有写)

https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

真是的学到了!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值