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