最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合阿里?Druid?數(shù)據(jù)源的實(shí)例詳解

 更新時(shí)間:2022年11月12日 09:55:34   作者:劉婉晴  
這篇文章主要介紹了SpringBoot整合阿里?Druid?數(shù)據(jù)源,主要講解了手動(dòng)配置方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言:今年是我的第二個(gè) 1024 了 ,和我一起大聲說出來,技術(shù)宅改變世界?。。?/p>

本節(jié)主要介紹的是:SpringBoot 整合阿里 Druid 數(shù)據(jù)源手動(dòng)配置方法

1. 在容器中注冊(cè) DruidDataSource 數(shù)據(jù)源。

編寫數(shù)據(jù)源配置類 MyDataSourseConfig.class,并在容器中注冊(cè) DruidDataSource 數(shù)據(jù)源。

代碼示例如下:

@Configuration
public class MyDataSourseConfig {
    @Bean
    @ConfigurationProperties("spring.datasource") // 屬性與配置文件綁定
    public DataSource dataSource(){
        return new DruidDataSource();
    }
}

2. Druid 數(shù)據(jù)源各種屬性配置方法

方法一(不推薦): 直接在配置類中通過為自定義的 DruidDataSource 組件 通過 set 設(shè)置各種屬性,來實(shí)現(xiàn)數(shù)據(jù)源的配置。

代碼示例如下:

@Configuration
public class MyDataSourseConfig {
    @Bean
    public DataSource dataSource(){
        
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setUrl("jdbc:mysql://localhost:3306/practice"); // 設(shè)置數(shù)據(jù)源連接 url
        // ..... 設(shè)置其他屬性 .....
        return druidDataSource;
    }
}

這種方法當(dāng)修養(yǎng)屬性值時(shí),需要大量修改源代碼,因此不推薦。

方法二(推薦):通過 @ConfigurationProperties(“spring.datasource”) 注釋將組件與配置文件中的 spring.datasource 項(xiàng)綁定,這樣在修改自定義數(shù)據(jù)源屬性時(shí),直接在 application.yaml 文件的 spring.datasource 配置項(xiàng)下修改即可。代碼示例如下:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/practice
    username: root
    password: 5201314love
    driver-class-name: com.mysql.jdbc.Driver

可通過自定義數(shù)據(jù)源組件注冊(cè)到容器中修改默認(rèn)數(shù)據(jù)源原理:

DataSourceAutoConfiguration.class 數(shù)據(jù)源自動(dòng)配置類中,有如下設(shè)置。其表示容器中沒有數(shù)據(jù)源,才自動(dòng)配置 Hikari 數(shù)據(jù)源。若有數(shù)據(jù)源則使用容器中的數(shù)據(jù)源。

3. 開啟Druid的內(nèi)置監(jiān)控頁面

在容器中放一 Servlet ,具體操作方法為在 Druid數(shù)據(jù)源 配置類中注冊(cè)一ServletRegistrationBean 組件到容器,ServletRegistrationBean 的Servlet 類型為 StatViewServlet 。代碼示例如下:

注意點(diǎn):訪問的 url 為 "/druid/*" ,是一個(gè) * 而不是雙 **

@Configuration
public class MyDataSourseConfig {
    @Bean
    @ConfigurationProperties("spring.datasource")
    public DataSource dataSource(){
        return new DruidDataSource();
    }

    // 配置 druid 監(jiān)控頁功能 —— 在容器中放一 Servlet
    @Bean
    public ServletRegistrationBean statViewServlet(){
        StatViewServlet statViewServlet = new StatViewServlet();
        ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<StatViewServlet>(statViewServlet, "/druid/*");
        return registrationBean;
    }
}

4. 打開 Druid 監(jiān)控統(tǒng)計(jì)功能

只是開啟了監(jiān)控頁功能并不能讓我們使用 Druid 為我們提供的 SQL 監(jiān)控等功能。還需要為數(shù)據(jù)源配置 StatFilter,具體方法是通過 setFilters(“stat”) 方法配置。代碼如下:

    @Bean
    @ConfigurationProperties("spring.datasource")
    public DataSource dataSource() throws SQLException {
        DruidDataSource druidDataSource = new DruidDataSource();
        // 加入監(jiān)控功能 —— setFilters("stat");
        druidDataSource.setFilters("stat");
        return druidDataSource;
    }

這時(shí)我們?cè)偃ピL問數(shù)據(jù)庫,可以發(fā)現(xiàn)SQL監(jiān)控功能可用了

5. 配置Web和Spring關(guān)聯(lián)監(jiān)控

在容器中注冊(cè)一 WebStatFilter ,通過 setUrlPatterns(Arrays.asList(“/*”) 設(shè)置監(jiān)控的請(qǐng)求為 /** 請(qǐng)求。具體代碼實(shí)現(xiàn)如下:

    // 采集 web-jdbc 關(guān)聯(lián)監(jiān)控的數(shù)據(jù)
    @Bean
    public FilterRegistrationBean webstatFilter(){
        WebStatFilter webStatFilter = new WebStatFilter();

        FilterRegistrationBean<WebStatFilter> registrationBean = new FilterRegistrationBean<>(webStatFilter);
        registrationBean.setUrlPatterns(Arrays.asList("/*"));
        registrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return registrationBean;
    }

6. 配置防火墻:

在數(shù)據(jù)源中通過 setFilter(“wall”) 加入 防火墻配置 (setFilter 多個(gè)值用逗號(hào)隔開)

        // 加入監(jiān)控功能
        druidDataSource.setFilters("stat, wall");

小優(yōu)化:
所有通過 setXXXX() 設(shè)置數(shù)據(jù)源的,都可以在配置文件中寫,因?yàn)?druidDataSource 已經(jīng)綁定了 spring.datasource 配置項(xiàng)

例如:

druidDataSource.setFilters("stat, wall");

可優(yōu)化為:

spring:
  datasource:
    # ... 此處省略一堆其他配置....
    filters: stat,wall

7. 給監(jiān)控頁加入賬號(hào)密碼

在 ServletRegistrationBean 中通過 addInitParameter 加入賬號(hào)密碼的設(shè)置

    // 配置 druid 監(jiān)控頁功能 —— 在容器中放一 Servlet
    @Bean
    public ServletRegistrationBean statViewServlet(){
        StatViewServlet statViewServlet = new StatViewServlet();
        ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<StatViewServlet>(statViewServlet, "/druid/*");
        registrationBean.addInitParameter("loginUsername", "wanqing");
        registrationBean.addInitParameter("loginPassword", "520131");
        return registrationBean;
    }

到此這篇關(guān)于SpringBoot整合阿里 Druid 數(shù)據(jù)源的文章就介紹到這了,更多相關(guān)SpringBoot整合Druid 數(shù)據(jù)源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳細(xì)盤點(diǎn)Java中鎖的分類

    詳細(xì)盤點(diǎn)Java中鎖的分類

    這篇文章主要介紹了詳細(xì)盤點(diǎn)Java中鎖的分類,Java中的鎖是一種多線程編程中的同步機(jī)制,用于控制線程對(duì)共享資源的訪問,防止并發(fā)訪問時(shí)的數(shù)據(jù)競爭和死鎖問題,需要的朋友可以參考下
    2023-08-08
  • 編寫android撥打電話apk應(yīng)用實(shí)例代碼

    編寫android撥打電話apk應(yīng)用實(shí)例代碼

    這篇文章主要介紹了編寫android撥打電話apk應(yīng)用實(shí)例代碼,十分的實(shí)用,這里分享給大家,有需要的小伙伴可以參考下
    2015-04-04
  • SpringCache緩存自定義配置的實(shí)現(xiàn)

    SpringCache緩存自定義配置的實(shí)現(xiàn)

    本文主要介紹了SpringCache緩存自定義配置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • springcloud?gateway無法路由問題的解決

    springcloud?gateway無法路由問題的解決

    gateway網(wǎng)關(guān)的重要作用之一便是進(jìn)行路由轉(zhuǎn)發(fā)工作,下面這篇文章主要給大家介紹了關(guān)于springcloud?gateway無法路由問題的解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Java中枚舉的實(shí)現(xiàn)原理介紹

    Java中枚舉的實(shí)現(xiàn)原理介紹

    大家好,本篇文章主要講的是Java中枚舉的實(shí)現(xiàn)原理介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • java實(shí)現(xiàn)五子棋程序

    java實(shí)現(xiàn)五子棋程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)五子棋程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Java中WeakHashMap的回收問題詳解

    Java中WeakHashMap的回收問題詳解

    這篇文章主要介紹了Java中WeakHashMap的回收問題詳解,WeakHashMap弱鍵大致上是通過WeakReference和ReferenceQueue實(shí)現(xiàn),WeakHashMap的key是"弱鍵",即是WeakReference類型的,ReferenceQueue是一個(gè)隊(duì)列,它會(huì)保存被GC回收的"弱鍵",需要的朋友可以參考下
    2023-09-09
  • IntelliJ IDEA中Project與Module的概念以及區(qū)別

    IntelliJ IDEA中Project與Module的概念以及區(qū)別

    這篇文章主要給大家介紹了關(guān)于IntelliJ IDEA中Project與Module的概念以及區(qū)別的相關(guān)資料,文中通過實(shí)例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 關(guān)于Java如何用好線程池的方法分享(建議收藏)

    關(guān)于Java如何用好線程池的方法分享(建議收藏)

    這篇文章主要來和大家分享幾個(gè)關(guān)于Java如何用好線程池的建議,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • Spring?boot整合ELK詳細(xì)過程

    Spring?boot整合ELK詳細(xì)過程

    ELK是由Elasticsearch、Logstash和Kibana三個(gè)開源軟件組成的技術(shù)堆棧,主要用于數(shù)據(jù)的存儲(chǔ)、處理和可視化,本文給大家介紹Spring?boot整合ELK詳細(xì)過程,感興趣的朋友一起看看吧
    2024-01-01

最新評(píng)論

合作市| 遵义市| 孝昌县| 庆元县| 荆门市| 榆林市| 陈巴尔虎旗| 潜江市| 鹿邑县| 赣榆县| 山西省| 中宁县| 四会市| 上虞市| 北宁市| 黔西县| 南昌市| 涞源县| 错那县| 浦北县| 秀山| 东乡县| 读书| 裕民县| 安义县| 南充市| 东乡族自治县| 桃园市| 郎溪县| 永登县| 南昌市| 巫溪县| 永登县| 特克斯县| 景谷| 文登市| 儋州市| 商南县| 临西县| 本溪市| 五寨县|