国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot-Druid

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot-Druid。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1.什么是Druid

2.主要優(yōu)點(diǎn)和原因

3.誤區(qū)

4.Part代碼

0.pom

1.Spring.datasource.type: com.alibaba.druid.pool.DruidDataSource

2.Druid用Jasypt加密任意內(nèi)容

@EnableEncryptableProperties開啟加密注解

3.Druid監(jiān)控平臺(tái)


1.什么是Druid

Druid 是一個(gè)開源的數(shù)據(jù)庫(kù)連接池和監(jiān)控庫(kù),主要用于連接和管理數(shù)據(jù)庫(kù)連接。它的設(shè)計(jì)目標(biāo)是提供高性能、高可用性、高度可管理性的數(shù)據(jù)庫(kù)連接池,適用于各種Java應(yīng)用程序,特別是那些需要頻繁與數(shù)據(jù)庫(kù)交互的應(yīng)用,如Web應(yīng)用、大數(shù)據(jù)處理等。

2.主要優(yōu)點(diǎn)和原因

  1. 連接池管理?Druid 提供了強(qiáng)大的連接池管理功能,可以有效地管理數(shù)據(jù)庫(kù)連接的創(chuàng)建、銷毀、復(fù)用和監(jiān)控,以減少數(shù)據(jù)庫(kù)連接的開銷和資源浪費(fèi)。

  2. 性能優(yōu)化:?Druid 在連接池和 SQL 執(zhí)行層面進(jìn)行了性能優(yōu)化,包括支持預(yù)編譯語(yǔ)句、自動(dòng)識(shí)別并關(guān)閉空閑連接、連接泄漏檢測(cè)等功能,以提高應(yīng)用程序的性能。

  3. 監(jiān)控和統(tǒng)計(jì)?Druid 提供了詳細(xì)的監(jiān)控和統(tǒng)計(jì)信息,包括連接池的狀態(tài)、SQL執(zhí)行性能、慢查詢?nèi)罩镜龋瑤椭_發(fā)人員和運(yùn)維人員更好地理解應(yīng)用的數(shù)據(jù)庫(kù)訪問(wèn)情況,及時(shí)發(fā)現(xiàn)性能問(wèn)題。

  4. 安全性:?Druid 支持 IP 白名單、SQL 防火墻等安全功能,可以保護(hù)數(shù)據(jù)庫(kù)免受惡意攻擊。

  5. 適用性廣泛:?Druid 不僅支持 JDBC,還支持類似Spring JDBC、MyBatis、Hibernate等框架,因此適用于各種Java應(yīng)用程序。

  6. 開源和活躍的社區(qū):?Druid 是開源項(xiàng)目,擁有活躍的社區(qū)支持,可以獲得及時(shí)的更新和 bug 修復(fù)。

  7. 可擴(kuò)展性:?Druid 具有可擴(kuò)展性,可以根據(jù)具體需求進(jìn)行定制和擴(kuò)展,以滿足特定應(yīng)用場(chǎng)景的要求。

總之,使用 Druid 數(shù)據(jù)庫(kù)連接池的主要目的是提高數(shù)據(jù)庫(kù)訪問(wèn)的性能、可管理性和安全性,同時(shí)提供了豐富的監(jiān)控和統(tǒng)計(jì)信息,有助于更好地管理和維護(hù)數(shù)據(jù)庫(kù)連接。當(dāng)你的應(yīng)用需要頻繁與數(shù)據(jù)庫(kù)交互時(shí),使用 Druid 可能會(huì)顯著提高應(yīng)用程序的性能和可維護(hù)性。

3.誤區(qū)

Druid本身不提供SQL優(yōu)化功能,SQL優(yōu)化通常需要依賴于數(shù)據(jù)庫(kù)引擎或其他專門的SQL優(yōu)化工具??梢栽谑褂肈ruid連接池的應(yīng)用中采取一些措施來(lái)優(yōu)化SQL查詢的性能;

4.Part代碼

JDBC默認(rèn)的DataSource實(shí)現(xiàn)是BasicDataSourceBasicDataSource是一個(gè)開源的、基本的DataSource實(shí)現(xiàn),用于創(chuàng)建和管理數(shù)據(jù)庫(kù)連接池。

因?yàn)槭褂眠B接池可以顯著提高數(shù)據(jù)庫(kù)連接的性能和資源利用率,減少連接的創(chuàng)建和銷毀開銷。

0.pom

<!--jasypt坐標(biāo)-->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>

<!--druid坐標(biāo)-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.8</version>
</dependency>

1.Spring.datasource.type: com.alibaba.druid.pool.DruidDataSource

System.out.println(dataSource.getClass());
System.out.println(dataSource.getConnection());

class com.alibaba.druid.pool.DruidDataSource
com.mysql.cj.jdbc.ConnectionImpl@32d5279

?可以看到數(shù)據(jù)源已經(jīng)成功切換

2.Druid用Jasypt加密任意內(nèi)容

生成密碼的密文代碼

@Test
void show1(){
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();
        // 加密的算法,這個(gè)算法是默認(rèn)的
        config.setAlgorithm("PBEWithMD5AndDES");
        // 加密的密鑰,隨便自己填寫,很重要千萬(wàn)不要告訴別人
        config.setPassword("apesource");
        standardPBEStringEncryptor.setConfig(config);
        //自己的密碼
        String plainText = "xxx";
        String encryptedText = standardPBEStringEncryptor.encrypt(plainText);
        System.out.println(encryptedText);
 }

?使密文生效我們使用了ENC函數(shù),并將混淆字符串的配置放到了yml當(dāng)中

jasypt:
  encryptor:
    password: apesource

yml當(dāng)中的格式

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myUsername
spring.datasource.password=ENC(密文)

@EnableEncryptableProperties開啟加密注解

3.Druid監(jiān)控平臺(tái)

yml當(dāng)中

filters: stat,wall

在Config配置類當(dāng)中

  2.配置servlet
    @Bean
    public ServletRegistrationBean registrationBean(){
        //1.創(chuàng)建servlet注冊(cè)類
        ServletRegistrationBean<StatViewServlet>  servletRegistrationBean =  new ServletRegistrationBean<StatViewServlet>();
        //2.創(chuàng)建制作頁(yè)面的servlet
        StatViewServlet statViewServlet = new StatViewServlet();
        //3.綁定servlet
        servletRegistrationBean.setServlet(statViewServlet);
        servletRegistrationBean.setUrlMappings(Arrays.asList("/druid/*"));
        //4.參數(shù)綁定
        Map<String,String> maps = new HashMap<String,String>();
        maps.put(StatViewServlet.PARAM_NAME_USERNAME,"admin");
        maps.put(StatViewServlet.PARAM_NAME_PASSWORD,"123");
        maps.put(StatViewServlet.PARAM_NAME_ALLOW,"");//白名單
        maps.put(StatViewServlet.PARAM_NAME_DENY,"192.168.0.12");//黑名單
        servletRegistrationBean.setInitParameters(maps);
        return servletRegistrationBean;
    }

    //3.配置filter
    @Bean
    public FilterRegistrationBean filterRegistrationBean(){

        FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<WebStatFilter>();
        bean.setFilter(new WebStatFilter());
        //所有請(qǐng)求進(jìn)行監(jiān)控處理
        bean.setUrlPatterns(Arrays.asList("/*"));

        Map<String, String> initPrams = new HashMap<>();
        //添加不需要忽略的格式信息
        initPrams.put(WebStatFilter.PARAM_NAME_EXCLUSIONS, "*.js,*.css,/druid/*");
        bean.setInitParameters(initPrams);

        return bean;
    }

攔截器和過(guò)濾器用到了servlet,所以要注冊(cè)servlet

攔截器主要攔截以/druid/開頭的

最后使用localhost://8080/就可以訪問(wèn)監(jiān)控平臺(tái)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-730115.html

到了這里,關(guān)于SpringBoot-Druid的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Springboot集成 Druid

    Springboot集成 Druid

    Druid是一個(gè)開源的數(shù)據(jù)庫(kù)連接池和SQL查詢優(yōu)化工具,用于提高應(yīng)用程序?qū)?shù)據(jù)庫(kù)的性能和可擴(kuò)展性。主要提供的功能:數(shù)據(jù)庫(kù)連接池、數(shù)據(jù)庫(kù)連接池監(jiān)控、SQL查詢優(yōu)化、數(shù)據(jù)源管理、防御SQL注入、統(tǒng)計(jì)和監(jiān)控。 注意:SpringBoot2.0默認(rèn)是用com.zaxxer.hikari.HikariDataSource作為數(shù)據(jù)源。

    2024年02月02日
    瀏覽(18)
  • SpringBoot-Druid

    目錄 1.什么是Druid 2.主要優(yōu)點(diǎn)和原因 3.誤區(qū) 4.Part代碼 0.pom 1.Spring.datasource.type: com.alibaba.druid.pool.DruidDataSource 2.Druid用Jasypt加密任意內(nèi)容 @EnableEncryptableProperties開啟加密注解 3.Druid監(jiān)控平臺(tái) Druid 是一個(gè)開源的數(shù)據(jù)庫(kù)連接池和監(jiān)控庫(kù),主要用于連接和管理數(shù)據(jù)庫(kù)連接。它的設(shè)計(jì)目標(biāo)

    2024年02月07日
    瀏覽(25)
  • Springboot+druid

    Springboot+druid

    1.Druid是Java語(yǔ)言中最好的數(shù)據(jù)庫(kù)連接池。Druid能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能。 2.配置maven 3.druid配置 4.打開Druid的監(jiān)控統(tǒng)計(jì)功能 Druid的監(jiān)控統(tǒng)計(jì)功能是通過(guò)filter-chain擴(kuò)展實(shí)現(xiàn),如果你要打開監(jiān)控統(tǒng)計(jì)功能,配置StatFilter http://localhost:8007/druid/login.html ? 5.配置過(guò)濾器 6.jdbc操作 7.

    2024年02月09日
    瀏覽(16)
  • SpringBoot項(xiàng)目集成Druid

    SpringBoot項(xiàng)目集成Druid

    本文將介紹Druid的相關(guān)內(nèi)容以及項(xiàng)目如何集成Druid,請(qǐng)多多指教。 Druid是阿里開源的一個(gè)數(shù)據(jù)庫(kù)連接池的解決方案。它本身還自帶一個(gè)監(jiān)控平臺(tái),可以查看時(shí)時(shí)產(chǎn)生的sql、uri等監(jiān)控?cái)?shù)據(jù),可以排查慢sql、慢請(qǐng)求,方便對(duì)sql和項(xiàng)目代碼進(jìn)行調(diào)優(yōu)。 1.1數(shù)據(jù)庫(kù)連接池 數(shù)據(jù)庫(kù)連接池是

    2024年02月10日
    瀏覽(28)
  • Spring Boot 使用 Druid 連接池詳解

    Alibaba Druid 是一個(gè) JDBC 組件庫(kù),包含數(shù)據(jù)庫(kù)連接池、SQL Parser 等組件,被大量業(yè)務(wù)和技術(shù)產(chǎn)品使用或集成,經(jīng)歷過(guò)嚴(yán)苛的線上業(yè)務(wù)場(chǎng)景考驗(yàn),是值得信賴的技術(shù)產(chǎn)品。Druid Spring Boot Starter 用于幫助你在 Spring Boot 項(xiàng)目中輕松集成 Druid 數(shù)據(jù)庫(kù)連接池和監(jiān)控。 https://github.com/alibaba/

    2023年04月08日
    瀏覽(24)
  • springboot引入druid解析sql

    springboot引入druid解析sql

    一、前言 在開發(fā)中,有時(shí)我們可能會(huì)需要獲取SQL中的表名,那么因?yàn)椴煌臄?shù)據(jù)源類型SQL會(huì)存在部分差異,那么我們就可以使用alibaba 的druid包實(shí)現(xiàn)不同的數(shù)據(jù)源類型的sql解析。 二、引入相關(guān)maven依賴 三、通過(guò)工具類SqlUtils實(shí)現(xiàn)對(duì)SQL的解析。 三、測(cè)試結(jié)果 運(yùn)行結(jié)果如下: 大

    2024年02月12日
    瀏覽(33)
  • Springboot集成Druid實(shí)現(xiàn)監(jiān)控功能

    Springboot集成Druid實(shí)現(xiàn)監(jiān)控功能

    Druid是阿里巴巴開發(fā)的號(hào)稱為監(jiān)控而生的數(shù)據(jù)庫(kù)連接池,在功能、性能、擴(kuò)展性方面,都超過(guò)其他數(shù)據(jù)庫(kù)連接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource等等等,秒殺一切。Druid可以很好的監(jiān)控DB池連接和SQL的執(zhí)行情況,天生就是針對(duì)監(jiān)控而生的DB連接池。 官方的參考 http

    2024年04月12日
    瀏覽(29)
  • Spring Boot 3 集成 Druid 連接池詳解

    Spring Boot 3 集成 Druid 連接池詳解

    在現(xiàn)代的Java應(yīng)用中,使用一個(gè)高效可靠的數(shù)據(jù)源是至關(guān)重要的。Druid連接池作為一款強(qiáng)大的數(shù)據(jù)庫(kù)連接池,提供了豐富的監(jiān)控和管理功能,成為很多Java項(xiàng)目的首選。本文將詳細(xì)介紹如何在Spring Boot 3項(xiàng)目中配置數(shù)據(jù)源,集成Druid連接池,以實(shí)現(xiàn)更高效的數(shù)據(jù)庫(kù)連接管理。 Spri

    2024年02月21日
    瀏覽(30)
  • Spring Boot3整合Druid(監(jiān)控功能)

    Spring Boot3整合Druid(監(jiān)控功能)

    目錄 1.前置條件 2.導(dǎo)依賴 錯(cuò)誤依賴: 正確依賴: 3.配置 已經(jīng)初始化好一個(gè)spring boot項(xiàng)目且版本為3X,項(xiàng)目可正常啟動(dòng)。 作者版本為3.2.2 初始化教程: 新版idea創(chuàng)建spring boot項(xiàng)目-CSDN博客 https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501 這個(gè)依賴對(duì)于spring boot 3的支

    2024年01月22日
    瀏覽(18)
  • Springboot+Druid配置多數(shù)據(jù)源

    Spring的多數(shù)據(jù)源支持—AbstractRoutingDataSource,AbstractRoutingDataSource定義了抽象的determineCurrentLookupKey方法,子類實(shí)現(xiàn)此方法,來(lái)確定要使用的數(shù)據(jù)源 Druid 實(shí)現(xiàn)多數(shù)據(jù)源支持,核心是Overwrite AbstractRoutingDataSource 的 determineCurrentLookupKey 方法 以springboot框架為基礎(chǔ)使用aop注解的方式依賴

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包