欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot+Druid開啟監(jiān)控頁(yè)面的實(shí)現(xiàn)示例

 更新時(shí)間:2024年06月06日 11:13:20   作者:陸慢慢  
本文主要介紹了SpringBoot+Druid開啟監(jiān)控頁(yè)面的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

介紹

Druid 是一個(gè)開源的數(shù)據(jù)庫(kù)連接池項(xiàng)目,由阿里巴巴集團(tuán)開發(fā)并貢獻(xiàn)給開源社區(qū)。它在Java領(lǐng)域中以其高性能、強(qiáng)大功能和易用性著稱,是Java應(yīng)用中廣泛使用的數(shù)據(jù)庫(kù)連接池組件之一。

Druid 的主要特點(diǎn)包括:

  • 高性能與低延遲: Druid 實(shí)現(xiàn)了高效的數(shù)據(jù)庫(kù)連接管理,支持快速獲取和釋放數(shù)據(jù)庫(kù)連接,從而提升系統(tǒng)性能。
  • 監(jiān)控與統(tǒng)計(jì):內(nèi)建強(qiáng)大的監(jiān)控功能,能夠?qū)崟r(shí)統(tǒng)計(jì)SQL執(zhí)行情況、連接使用狀況等信息,方便開發(fā)者優(yōu)化SQL語(yǔ)句和數(shù)據(jù)庫(kù)配置,并且可以與各種監(jiān)控系統(tǒng)集成。
  • 擴(kuò)展性:支持SQL解析與攔截,允許自定義插件來(lái)增強(qiáng)功能,比如SQL黑名單、白名單過(guò)濾,防止SQL注入攻擊,以及慢查詢?nèi)罩居涗浀取?/li>
  • 資源控制:提供了完善的連接池配置選項(xiàng),如連接數(shù)限制、超時(shí)時(shí)間設(shè)置、空閑連接檢測(cè)與回收機(jī)制等,有助于更好地管理和控制數(shù)據(jù)庫(kù)資源。
  • 標(biāo)準(zhǔn)接口實(shí)現(xiàn):Druid 實(shí)現(xiàn)了JDBC的標(biāo)準(zhǔn)接口 javax.sql.DataSource,因此可以在任何兼容JDBC的應(yīng)用程序中輕松替換傳統(tǒng)的數(shù)據(jù)庫(kù)連接方式。
  • 并發(fā)與線程安全:設(shè)計(jì)上充分考慮了高并發(fā)環(huán)境下的性能與穩(wěn)定性,保證多線程環(huán)境下數(shù)據(jù)庫(kù)連接的安全使用。

盡管在實(shí)際測(cè)試中,其他如HikariCP等連接池在某些場(chǎng)景下可能表現(xiàn)更優(yōu),但 Druid 由于其全面的功能集和良好的社區(qū)支持,在生產(chǎn)環(huán)境中仍被廣泛應(yīng)用。

我記得Springboot2.0以上版本默認(rèn)集成的是Hikari。Druid已經(jīng)被阿里棄用了。

為什么寫?

因?yàn)榫W(wǎng)上資料一大把,但是我用了幾個(gè)發(fā)現(xiàn)并不能打開druid的監(jiān)控頁(yè)面,而且很多一大串配置根本沒有生效,或者說(shuō)根本就不是這樣的。(當(dāng)然我也沒完全理解到全部?jī)?nèi)容)

1、引入POM

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

2、yaml文件配置

server:
  port: 8099

spring:
  datasource:
    druid:
      url: 數(shù)據(jù)庫(kù)連接地址
      username: 數(shù)據(jù)庫(kù)賬號(hào)
      password: 數(shù)據(jù)庫(kù)密碼
      driver-class-name: com.mysql.cj.jdbc.Driver
      # 初始化物理鏈接的個(gè)數(shù)
      initial-size: 5
      # 最大連接池?cái)?shù)量
      max-active: 30
      # 最小 連接池?cái)?shù)量
      min-idle: 5
      # 獲取連接時(shí)最大等待時(shí)間,單位毫秒 timeout鏈接超時(shí)
      max-wait: 60000
      # 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒  檢測(cè)非核心鏈接的時(shí)間
      #既作為檢測(cè)的間隔時(shí)間又作為testWhileIdel執(zhí)行的依據(jù)
      time-between-eviction-runs-millis: 60000
      # 連接保持空閑而不被驅(qū)逐的最小時(shí)間
      min-evictable-idle-time-millis: 30000
      # 用來(lái)檢測(cè)連接是否有效的sql,要求是一個(gè)查詢語(yǔ)句  8小時(shí)問(wèn)題 8個(gè)小時(shí)沒跟mysql通信mysql會(huì)主動(dòng)關(guān)閉該鏈接
      validation-query: SELECT 1 FROM DUAL
      # 建議配置為true,不影響性能,并且保證安全性。申請(qǐng)連接的時(shí)候檢測(cè),
      # 如果空閑時(shí)間大于min-evictable-idle-time-millis,執(zhí)行validationQuery檢測(cè)連接是否有效。
      test-while-idle: true
      # 申請(qǐng)連接時(shí)執(zhí)行validationQuery檢測(cè)連接是否有效,做了這個(gè)配置會(huì)降低性能。
      test-on-borrow: false
      # 歸還連接時(shí)執(zhí)行validationQuery檢測(cè)連接是否有效,做了這個(gè)配置會(huì)降低性能。
      test-on-return: false
      # 是否緩存preparedStatement,也就是PSCache。PSCache對(duì)支持游標(biāo)的數(shù)據(jù)庫(kù)性能提升巨大,
      # 比如說(shuō)oracle。在mysql下建議關(guān)閉。不是mysql端,鏈接端,select * from student 查詢緩存
      pool-prepared-statements: true
      # 要啟用PSCache,必須配置大于0,當(dāng)大于0時(shí),poolPreparedStatements自動(dòng)觸發(fā)修改為true。
      max-pool-prepared-statement-per-connection-size: 50
      #調(diào)優(yōu)相關(guān):基本上任何一個(gè)項(xiàng)目的性能瓶頸 1.io 2.cpu計(jì)算量
      # 配置監(jiān)控統(tǒng)計(jì)攔截的filters,去掉后監(jiān)控界面sql無(wú)法統(tǒng)計(jì)
      filters: stat,wall
      # 通過(guò)connectProperties屬性來(lái)打開mergeSql功能;慢SQL記錄  慢查詢:增刪改查
      connection-properties: druid.stat.mergeSql=true;
      filter:
        stat:
          slow-sql-millis: 1
      # 合并多個(gè)DruidDataSource的監(jiān)控?cái)?shù)據(jù)
      use-global-data-source-stat: true
#      # druid連接池監(jiān)控
#      stat-View-Servlet:
#        login-username: admin
#        login-password: 1101165230
      # 排除一些靜態(tài)資源,以提高效率
      web-stat-filter:
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"

3、創(chuàng)建配置類

/**
 * @author by Guoshun
 * @version 1.0.0
 * @description druid
 * @date 2024/2/4 17:15
 */
@Configuration//放入容器中
public class DruidConfig {
// 
//    @Bean
//    //綁定配置文件前綴為spring.datasource
//    @ConfigurationProperties(prefix = "spring.datasource.druid")
//    public DataSource druidDataSource(){
//        return new DruidDataSource();
//    }
    /**
     * 返回后臺(tái)監(jiān)控servlet
     */
    @Bean
    public ServletRegistrationBean monitor(){
        //請(qǐng)求
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
        //后臺(tái)需要用戶登錄,賬號(hào)密碼配置
        HashMap<String, String> initParameters = new HashMap<>();
        //增加配置
        //登錄key是固定的loginUsername loginPassword
        //TODO 這里改成你需要的用戶名和密碼
        initParameters.put("loginUsername","admin");
        initParameters.put("loginPassword","1101165230");
        //訪問(wèn)白名單
//        initParameters.put("allow","ip地址");
        bean.setInitParameters(initParameters);//設(shè)置初始化參數(shù)
        return bean;
    }

    /**
     * filter
     * @return
     */
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean<Filter> filterBean = new FilterRegistrationBean<>();
        filterBean.setFilter(new WebStatFilter());
        //可以過(guò)濾那些請(qǐng)求
        Map<String, String> initParameters = new HashMap<>();
        //不統(tǒng)計(jì)這些東西
        initParameters.put("exclusions","*.js,*.css,/druid/*");
        filterBean.setInitParameters(initParameters);
        return filterBean;
    }
}

啟動(dòng)項(xiàng)目輸入地址:http://ip:port/druid/login.html

登錄界面

到此這篇關(guān)于SpringBoot+Druid開啟監(jiān)控頁(yè)面的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot Druid開啟監(jiān)控內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Java 時(shí)間日期詳細(xì)介紹及實(shí)例

    Java 時(shí)間日期詳細(xì)介紹及實(shí)例

    這篇文章主要介紹了Java 時(shí)間日期詳細(xì)介紹及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • JavaEE多線程中阻塞隊(duì)列的項(xiàng)目實(shí)踐

    JavaEE多線程中阻塞隊(duì)列的項(xiàng)目實(shí)踐

    本文主要介紹了JavaEE多線程中阻塞隊(duì)列的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • windows如何使用bat腳本后臺(tái)啟動(dòng)/停止和重啟jar包服務(wù)

    windows如何使用bat腳本后臺(tái)啟動(dòng)/停止和重啟jar包服務(wù)

    這篇文章主要介紹了windows使用bat腳本后臺(tái)啟動(dòng)/停止和重啟jar包服務(wù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java的方法和this關(guān)鍵字如何理解與應(yīng)用

    Java的方法和this關(guān)鍵字如何理解與應(yīng)用

    Java語(yǔ)言中的“方法”(Method)在其他語(yǔ)言當(dāng)中也可能被稱為“函數(shù)”(Function)。對(duì)于一些復(fù)雜的代碼邏輯,如果希望重復(fù)使用這些代碼,并且做到“隨時(shí)任意使用”,那么就可以將這些代碼放在一個(gè)大括號(hào){}當(dāng)中,并且起一個(gè)名字。使用代碼的時(shí)候,直接找到名字調(diào)用即可
    2021-10-10
  • Java基于UDP協(xié)議的聊天室功能

    Java基于UDP協(xié)議的聊天室功能

    這篇文章主要為大家詳細(xì)介紹了Java基于UDP協(xié)議的聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • java拓展集合工具類CollectionUtils

    java拓展集合工具類CollectionUtils

    這篇文章主要為大家詳細(xì)介紹了java拓展集合工具類CollectionUtils,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 基于Spring AOP proxyTargetClass的行為表現(xiàn)總結(jié)

    基于Spring AOP proxyTargetClass的行為表現(xiàn)總結(jié)

    這篇文章主要介紹了Spring AOP proxyTargetClass的行為表現(xiàn)總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java程序打包成exe與jar的圖文教程

    java程序打包成exe與jar的圖文教程

    這篇文章主要介紹了java程序打包成exe與jar的圖文教程,有需要的朋友可以參考一下
    2014-01-01
  • Java 在線考試云平臺(tái)的實(shí)現(xiàn)

    Java 在線考試云平臺(tái)的實(shí)現(xiàn)

    讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+vue+springboot+mysql+maven實(shí)現(xiàn)一個(gè)前端vue后臺(tái)java微服務(wù)的在線考試系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • IDEA感覺不香了AI智能編程工具Cursor使用圖文教程

    IDEA感覺不香了AI智能編程工具Cursor使用圖文教程

    這篇文章主要介紹了IDEA感覺不香了AI智能編程工具Cursor使用,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05

最新評(píng)論