Springboot項(xiàng)目引入druid安裝部署使用教程
一、maven引入依賴,數(shù)據(jù)庫驅(qū)動(dòng)根據(jù)項(xiàng)目需求自行引入
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency>
二、配置datasource
spring: datasource: url: jdbc:mysql://192.168.199.100:33306/auto?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource initial-size: 1 min-idle: 1 max-active: 10 max-wait: 60000 #配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒 time-between-eviction-runs-millis: 60000 #配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒 min-evictable-idle-time-millis: 30000 durid: #配置監(jiān)控統(tǒng)計(jì)攔截的filters,stat:監(jiān)控統(tǒng)計(jì)、log4j:日志記錄、wall:防御sql注入 filters: wall,stat,log4j
三、注入druid配置
@SpringBootConfiguration public class DruidConfig { //將自定義的 Druid數(shù)據(jù)源添加到容器中,不再讓 Spring Boot 自動(dòng)創(chuàng)建 //綁定全局配置文件中的 druid 數(shù)據(jù)源屬性到 com.alibaba.druid.pool.DruidDataSource從而讓它們生效 //@ConfigurationProperties(prefix = "spring.datasource"):作用就是將 全局配置文件中 //前綴為 spring.datasource的屬性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名參數(shù)中 @Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource druidDataSource() { return new DruidDataSource(); } //配置 Druid 監(jiān)控管理后臺(tái)的Servlet; //內(nèi)置 Servlet 容器時(shí)沒有web.xml文件,所以使用 Spring Boot 的注冊(cè) Servlet 方式 @Bean public ServletRegistrationBean registrationBean() { ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); Map<String, String> initParameters = new HashMap<>(); initParameters.put("loginUsername", "admin"); initParameters.put("loginPassword", "12345"); bean.setInitParameters(initParameters); return bean; } //配置 Druid 監(jiān)控 之 web 監(jiān)控的 filter //WebStatFilter:用于配置Web和Druid數(shù)據(jù)源之間的管理關(guān)聯(lián)監(jiān)控統(tǒng)計(jì) @Bean public FilterRegistrationBean webStatFilter() { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); //exclusions:設(shè)置哪些請(qǐng)求進(jìn)行過濾排除掉,從而不進(jìn)行統(tǒng)計(jì) Map<String, String> initParams = new HashMap<>(); initParams.put("exclusions", "*.js,*.css,/druid/*,/jdbc/*"); bean.setInitParameters(initParams); //"/*" 表示過濾所有請(qǐng)求 bean.setUrlPatterns(Arrays.asList("/*")); return bean; } /** * 去除Druid監(jiān)控頁面的廣告 */ @Bean public FilterRegistrationBean removeDruidAdFilter() throws IOException { String text = Utils.readFromResource("support/http/resources/js/common.js"); final String newJs = text.replace("this.buildFooter();", ""); // 新建一個(gè)過濾器注冊(cè)器對(duì)象 FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>(); // 注冊(cè)common.js文件的過濾器 registration.addUrlPatterns("/druid/js/common.js"); // 添加一個(gè)匿名的過濾器對(duì)象,并把改造過的common.js文件內(nèi)容寫入到瀏覽器 registration.setFilter((servletRequest, servletResponse, filterChain) -> { // 重置緩沖區(qū),響應(yīng)頭不會(huì)被重置 servletResponse.resetBuffer(); // 把改造過的common.js文件內(nèi)容寫入到瀏覽器 servletResponse.getWriter().write(newJs); }); return registration; } }
四、測(cè)試 druid 數(shù)據(jù)源是否啟用
@SpringBootTest(classes = AutoApplication.class) public class DuridTest { //DI注入數(shù)據(jù)源 @Autowired private DataSource dataSource; @Test public void contextLoads() throws SQLException { //看一下默認(rèn)數(shù)據(jù)源 System.out.println(dataSource.getClass()); //獲得連接 Connection connection = dataSource.getConnection(); System.out.println(connection); DruidDataSource druidDataSource = (DruidDataSource) dataSource; System.out.println("druidDataSource 數(shù)據(jù)源最大連接數(shù):" + druidDataSource.getMaxActive()); System.out.println("druidDataSource 數(shù)據(jù)源初始化連接數(shù):" + druidDataSource.getInitialSize()); //關(guān)閉連接 connection.close(); } }
五、登陸druid后臺(tái)控制臺(tái),用戶名及密碼在DruidConfig 配置中
127.0.0.1:65000/druid/login.html
到此這篇關(guān)于Springboot項(xiàng)目引入druid安裝部署使用教程的文章就介紹到這了,更多相關(guān)Springboot項(xiàng)目引入druid內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實(shí)現(xiàn)點(diǎn)餐系統(tǒng)的登錄與退出功能流程詳解
結(jié)束了Springboot+MyBatisPlus也是開始了項(xiàng)目之旅,將從后端的角度出發(fā)來整理這個(gè)項(xiàng)目中重點(diǎn)業(yè)務(wù)功能的梳理與實(shí)現(xiàn)2022-10-10Java String源碼分析并介紹Sting 為什么不可變
這篇文章主要介紹了Java String源碼分析并介紹Sting 為什么不可變的相關(guān)資料,需要的朋友可以參考下2017-02-02RabbitMQ 的七種隊(duì)列模式和應(yīng)用場(chǎng)景
最近學(xué)習(xí)RabbitMQ,本文就記錄一下RabbitMQ 的七種隊(duì)列模式和應(yīng)用場(chǎng)景,方便以后使用,也方便和大家共享,相互交流2021-05-05java 矩陣乘法的mapreduce程序?qū)崿F(xiàn)
這篇文章主要介紹了java 矩陣乘法的mapreduce程序?qū)崿F(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-06-06java實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送文件
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-011秒實(shí)現(xiàn)Springboot 圖片添加水印功能
這篇文章主要介紹了1秒實(shí)現(xiàn)Springboot 圖片添加水印功能,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12springboot自動(dòng)配置沒有生效的問題定位(條件斷點(diǎn))
這篇文章主要介紹了springboot自動(dòng)配置未生效問題定位,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們來學(xué)習(xí)一下吧2019-06-06javax.validation自定義日期范圍校驗(yàn)注解操作
這篇文章主要介紹了javax.validation自定義日期范圍校驗(yàn)注解操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09Java中Velocity快速對(duì)變量中的引號(hào)特殊字符進(jìn)行轉(zhuǎn)義
Velocity是一個(gè)基于Java的模板引擎,與Freemarker類似,這篇文章主要介紹了Java中Velocity如何對(duì)變量中的引號(hào)特殊字符進(jìn)行轉(zhuǎn)義,主要記錄一下在使用中碰到的要對(duì)引號(hào)特殊字符進(jìn)行轉(zhuǎn)義的問題,需要的朋友可以參考下2023-07-07Easyui的combobox實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)級(jí)聯(lián)效果
這篇文章主要介紹了Easyui的combobox實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)級(jí)聯(lián)效果的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-06-06