springboot整合druid并使用查看可视化界面


一、添加druid依赖

<!-- druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.9</version>
</dependency>

二、数据源配置

 
 
  datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/dwsurvey?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
# 初始化时建立物理连接的个数
initial-size: 5
# 最小连接池数量
min-idle: 5
# 最大连接池数量
max-active: 20
# 获取连接时最大等待时间,单位毫秒
max-wait: 5000
# 状态监控
filter:
stat:
enabled: true
db-type: mysql
log-slow-sql: true
slow-sql-millis: 2000
# 监控过滤器
web-stat-filter:
enabled: true
exclusions:
- "*.js"
- "*.gif"
- "*.jpg"
- "*.png"
- "*.css"
- "*.ico"
- "/druid/*"
# druid 监控页面
stat-view-servlet:
# 是否开启监控
enabled: true
# 监控路径
url-pattern: /druid/*
# 是否可以重置数据
reset-enable: false
# 登录密码
login-password: root
# 登录名
login-username: root
validation-query: "SELECT 1 FROM DUAL "
 

可视化页面地址: http://localhost:8080/druid/sql.html

注意,如果小伙伴引入的是springboot已经整合druid的包的话到这里的配置就可以查看druid的页面了(

<artifactId>druid-spring-boot-starter</artifactId>

) 如果引入的包是单druid的包就还要配置一个bean

@Configuration
public class DruidConfiguration {

    
    @Bean
    public ServletRegistrationBean druidServlet() {
        ServletRegistrationBean<Servlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
        Map<String,String> map = new HashMap<>();
        map.put("loginUsername","admin");
        map.put("loginPassword","123456");
        map.put("deny","192.168.47.156");
        bean.setInitParameters(map);
        return bean;

    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
        bean.setFilter(new WebStatFilter());
        Map<String,String> map = new HashMap<>();
        map.put("exclusions","*.js,*.css,/druid/*");
        //拦截所有请求
        bean.setUrlPatterns(Arrays.asList("/*"));
        bean.setInitParameters(map);
        return bean;

    }


    @Bean
    public WallFilter wallFilter(){
        WallFilter wallFilter = new WallFilter();
        wallFilter.setConfig(wallConfig());
        return wallFilter;
    }

    @Bean
    public WallConfig wallConfig(){
        WallConfig wallConfig = new WallConfig();
        wallConfig.setMultiStatementAllow(true);
        //允许一次执行多条语句
        wallConfig.setNoneBaseStatementAllow(true);
        //是否允许非以上基本语句的其他语句
        wallConfig.setStrictSyntaxCheck(false);
        //是否进行严格的语法检测
        return wallConfig;
    }

    @Bean(name="dataSource")
    public DataSource dataSource(){
        return new DruidDataSource();
    }

    // 配置事物管理器
    @Bean(name="transactionManager")
    public DataSourceTransactionManager transactionManager(){
        return new DataSourceTransactionManager(dataSource());
    }

}

这时候spring配置文件中的druid下面的所有的配置默认都不会生效,需要自己绑定相应的参数

TODO:

有些springboot项目启动打开druid可视化界面正常,但是看不了监控中的sql语句,这时候我们在jvm启动的时候配置一个命令:

-Ddruid.filters=mergeStat -Ddruid.useGlobalDataSourceStat=true 
开启druid的全局监控,这样就行了!

资料转载:

https://www.cnblogs.com/lideqiang0909/p/11588729.html

https://blog.csdn.net/weixin_43943548/article/details/102991236

https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM