Spring Boot 2整合Druid的兩種方式

一、自定義整合Druid(非Starter方式)

適用于需要完全手動控制配置的場景

  1. 添加依賴(pom.xml)
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version> <!-- 使用最新版本 -->
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

  1. 創建配置類
@Configuration
public class DruidConfig {@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource druidDataSource() {return new DruidDataSource();}// 配置監控服務器@Beanpublic ServletRegistrationBean<StatViewServlet> statViewServlet() {ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");Map<String, String> initParams = new HashMap<>();initParams.put("loginUsername", "admin");  // 監控后臺登錄賬號initParams.put("loginPassword", "admin123"); initParams.put("allow", "");  // 允許所有訪問bean.setInitParameters(initParams);return bean;}// 配置過濾器@Beanpublic FilterRegistrationBean<WebStatFilter> webStatFilter() {FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<>(new WebStatFilter());bean.addUrlPatterns("/*");bean.addInitParameter("exclusions", "*.js,*.css,/druid/*");return bean;}
}

  1. application.yml配置
spring:datasource:url: jdbc:mysql://localhost:3306/testdbusername: rootpassword: root123driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource# 連接池配置initialSize: 5minIdle: 5maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: truefilters: stat,wall

二、使用Starter整合Druid(推薦)

官方提供的簡化方案,自動配置監控頁面

  1. 添加Starter依賴
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.8</version>
</dependency>

  1. application.yml完整配置
spring:datasource:url: jdbc:mysql://localhost:3306/testdbusername: rootpassword: root123driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourcedruid:# 連接池配置initial-size: 5min-idle: 5max-active: 20max-wait: 60000# 監控配置stat-view-servlet:enabled: trueurl-pattern: /druid/*login-username: adminlogin-password: admin123reset-enable: falseweb-stat-filter:enabled: trueurl-pattern: /*exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"# 防火墻配置filter:wall:config:multi-statement-allow: true

三、關鍵功能驗證
  1. 監控界面訪問

    • 訪問 http://localhost:8080/druid
    • 使用配置的用戶名/密碼登錄
  2. SQL監控

    @RestController
    public class TestController {@Autowiredprivate JdbcTemplate jdbcTemplate;@GetMapping("/users")public List<Map<String, Object>> getUsers() {return jdbcTemplate.queryForList("SELECT * FROM user");}
    }
    

四、配置優化建議
  1. 生產環境安全

    druid:stat-view-servlet:allow: 192.168.1.100  # 限制訪問IPdeny: 192.168.1.73
    

  2. 性能調優參數

    druid:max-wait: 1000validation-query: SELECT 1test-on-borrow: falsetest-on-return: falsetest-while-idle: true
    

  3. 啟用SQL防火墻

    druid:filter:wall:enabled: trueconfig:drop-table-allow: false
    

注意:使用Starter方式時,監控頁面默認路徑為/druid/*,如需修改可在配置中調整url-pattern參數。兩種方式都支持完整的連接池參數配置,但Starter方式簡化了監控功能的集成。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90913.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙Next-開發版本升級,API升級(例如API12升API16)

鴻蒙更新換代很快的&#xff0c;2025年1月&#xff0c;截至4月就有 DevEco Studio 5.0.2 Release 升級到 DevEco Studio 5.0.3 Release 升級到 DevEco Studio 5.0.4 Release&#xff0c;三次大版本更新。 作者也想在年前創建的項目中體驗一下新版本的特性&#xff0c;于是查看了…

樹莓派設置時區

查看當前時間 piraspberrypi-CM5:~ $ date Mon 28 Jul 09:22:38 BST 2025BST 指的是 British Summer Time&#xff0c;即英國夏令時&#xff08;UTC1&#xff09;。 所以這是英國&#xff08;倫敦等地&#xff09;在夏令時期間的本地時間&#xff0c;比標準的 UTC 時間快 1 小時…

C Primer Plus 第6版 編程練習——第13章(下)

8.編寫一個程序&#xff0c;以一個字符和任意文件名作為命令行參數。如果字符后面沒有參數&#xff0c;該程序讀取標 淮輸入;否則&#xff0c;程序依次打開每個文件并報告每個文件中該字符出現的次數。文件名和字符本身也要一同報告。程序應包含錯誤檢查&#xff0c;以確定參數…

王樹森推薦系統公開課

github&#xff1a;https://github.com/wangshusen/RecommenderSystem b站&#xff1a;推薦系統公開課——8小時完整版&#xff0c;講解工業界真實的推薦系統_嗶哩嗶哩_bilibili 知乎上一個比較全面的筆記&#xff1a;https://zhuanlan.zhihu.com/p/678664853 我的筆記&…

<RT1176系列11>DMAMUX解讀

1、概述DMA&#xff08;直接內存訪問&#xff0c;DIrect Memory Access&#xff09;工作原理&#xff1a;DMA控制器直接在內存和外設之間傳輸數據&#xff0c;而不需要CPU的干預。優點&#xff1a;極大地提高了數據傳輸效率&#xff0c;釋放CPU資源。適合大批量數據傳輸&#x…

【MySQL】MySQL 緩存方案

一、MySQL主從同步 1.1 主從同步是什么 MySQL 主從同步是一種數據復制機制&#xff0c;通過該機制可以實現將主數據庫&#xff08;Master&#xff09;的 DDL&#xff08;數據定義語言&#xff09;和 DML&#xff08;數據操縱語言&#xff0c;如 update、insert、delete&#x…

base64.b64encode(f.read()).decode(‘utf-8‘)作用

base64.b64encode(f.read()).decode(utf-8) 的作用是將文件內容&#xff08;通常是二進制文件&#xff09;編碼為一個 UTF-8 格式的字符串。下面逐步解釋這個過程&#xff1a;f.read()&#xff1a;讀取文件 f 中的內容。這將返回文件的二進制數據。base64.b64encode()&#xff…

集合框架學習

目錄 集合體系結構 Collection的常用方法 Collection的遍歷方式 迭代器 增強for Lambda表達式 集合框架概述 集合體系結構 單列集合 Collection代表單列集合,每個元素(數據)只包含一個值 雙列集合 Map代表雙列集合,每個元素包含兩個值(鍵值對) Collection集合特點 Li…

經典算法題解析:從思路到實現,掌握核心編程思維

算法是編程的靈魂&#xff0c;也是面試中的重點考察內容。本文精選了幾道經典算法題&#xff0c;涵蓋字符串處理、鏈表操作、樹遍歷等常見場景&#xff0c;通過詳細解析幫助你理解算法設計思路與實現細節&#xff0c;提升解題能力。一、無重復字符的最長子串題目描述給定一個字…

【Unity游戲】——1.俄羅斯方塊

搭建場景 使用任意方塊、純色瓦片或者其他圖形作為背景&#xff0c;設置其大小與目標大小一致或者更大&#xff0c;設置左下角為場景頂點&#xff0c;并放置在&#xff08;0&#xff0c;0&#xff09;處。調整攝像機至合適位置。 制作游戲預制體 每個方塊預制體包含有4個小方…

【C++進階】---- 二叉搜索樹

1.二叉搜索樹的概念 ?叉搜索樹?稱?叉排序樹&#xff0c;它或者是?棵空樹&#xff0c;或者是具有以下性質的?叉樹: ? 若它的左?樹不為空&#xff0c;則左?樹上所有結點的值都?于等于根結點的值 ? 若它的右?樹不為空&#xff0c;則右?樹上所有結點的值都?于等于根結…

基于 OpenCV 與 sklearn 的數字識別:KNN 算法實踐

在計算機視覺領域&#xff0c;數字識別是一個經典問題&#xff0c;廣泛應用于郵政編碼識別、車牌識別等場景。本文將介紹如何使用 OpenCV 進行圖像處理&#xff0c;并結合 KNN&#xff08;K 近鄰&#xff09;算法實現數字識別&#xff0c;同時對比 OpenCV 內置 KNN 與 scikit-l…

利用徑向條形圖探索華盛頓的徒步旅行

利用徑向條形圖探索華盛頓的徒步旅行 import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np import pandas as pdfrom matplotlib.cm import ScalarMappable from matplotlib.lines import Line2D from mpl_toolkits.axes_grid1.inset_locator impor…

火狐瀏覽器中國特供版關閉,如何下載 Firefox 國際版?如何備份數據?

火狐瀏覽器中國特供版關閉&#xff0c;如何下載 Firefox 國際版&#xff1f;如何備份數據&#xff1f;各位火狐老用戶注意了&#xff01;7 月 27 日北京謀智火狐正式發布公告&#xff1a;2025 年 9 月 29 日 24:00 起&#xff0c;中國特供版賬戶服務將徹底關閉&#xff0c;所有…

C語言操作符詳解:從基礎到進階

在C語言中&#xff0c;操作符是構建表達式的基礎&#xff0c;掌握各類操作符的用法、優先級及特性&#xff0c;對寫出高效且正確的代碼至關重要。本文將系統梳理C語言操作符的核心知識點&#xff0c;包含實例代碼與詳細解析&#xff0c;助你徹底搞懂操作符。 1. 操作符的分類 C…

鴻蒙平臺運行Lua腳本

1. 目標 使用 rust 在移動端實現 Lua 腳本的運行。 2. 核心步驟 [Rust Host App]│├── [mLua VM] (通過 mlua 或 rlua 庫嵌入)│ ├── 獨立Lua狀態&#xff08;隔離執行&#xff09;│ ├── 受限標準庫&#xff08;禁用危險函數&#xff09;│ └── 內存/CPU限…

【Ubuntu】發展歷程

Ubuntu 是一個基于 Debian 的 Linux 發行版&#xff0c;由 Canonical 公司開發和維護。它以其易用性、穩定性和強大的社區支持而著稱。以下是 Ubuntu 從發布以來的主要版本和發展歷程&#xff1a;1. Ubuntu 4.10 "Warty Warthog" (2004)發布日期&#xff1a;2004年10…

k8s下springboot-admin 監控服務部署,客戶端接入

踩坑及解決以下問題 1、客戶端監控信息不顯示,需要暴露監控檢查接口路徑 2、服務端不顯示客戶端日志,需要啟用日志,并指定日志路徑 3、解決在k8s下,客戶端多實例注冊id相同,如2個實例只顯示一個 整體架構 springboot-admin 由服務端和客戶端組成 服務端負責 1、提供 We…

git刪除遠程分支和本地分支

1. git刪除遠程分支 git push origin --delete [branch_name]2. 刪除本地分支 2.1 git branch -d 會在刪除前檢查merge狀態&#xff08;其與上游分支或者與head&#xff09;。 git branch -d [branch_name] 2.2 git branch -D 直接刪除 git branch -D 是 git branch --delete…

Go 的時間包:理解單調時間與掛鐘時間

Go 的時間包&#xff1a;理解單調時間與掛鐘時間 &#x1f4c5; 引言 Go 語言自版本 1.9 起在 time.Time 中同時支持 “掛鐘時間&#xff08;wall?clock&#xff09;” 和 “單調時間&#xff08;monotonic clock&#xff09;”&#xff0c;用于分別滿足時間戳與時間間隔測量…