栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Druid数据源还能这么用?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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项目,然后导入依赖
        
            mysql
            mysql-connector-java
            runtime
        
        
            com.alibaba
            druid
            1.1.12
        

一个是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依赖导入)
        
            log4j
            log4j
            1.2.17
        
@Configuration
public class DruidConfig {

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

    @Bean
    public ServletRegistrationBean druidServletRegistrationBean(){
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
        Map 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 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> empList(){
        String sql = "select * from book";
        List> 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
真是的学到了!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号