Springboot項目引入druid安裝部署使用教程
更新時間:2022年01月07日 08:30:47 作者:遠離顛倒夢想
這篇文章主要介紹了Springboot項目引入druid安裝部署使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、maven引入依賴,數據庫驅動根據項目需求自行引入
<!-- 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
#配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
time-between-eviction-runs-millis: 60000
#配置一個連接在池中最小生存的時間,單位是毫秒
min-evictable-idle-time-millis: 30000
durid:
#配置監(jiān)控統計攔截的filters,stat:監(jiān)控統計、log4j:日志記錄、wall:防御sql注入
filters: wall,stat,log4j三、注入druid配置
@SpringBootConfiguration
public class DruidConfig {
//將自定義的 Druid數據源添加到容器中,不再讓 Spring Boot 自動創(chuàng)建
//綁定全局配置文件中的 druid 數據源屬性到 com.alibaba.druid.pool.DruidDataSource從而讓它們生效
//@ConfigurationProperties(prefix = "spring.datasource"):作用就是將 全局配置文件中
//前綴為 spring.datasource的屬性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名參數中
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource() {
return new DruidDataSource();
}
//配置 Druid 監(jiān)控管理后臺的Servlet;
//內置 Servlet 容器時沒有web.xml文件,所以使用 Spring Boot 的注冊 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數據源之間的管理關聯監(jiān)控統計
@Bean
public FilterRegistrationBean webStatFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
//exclusions:設置哪些請求進行過濾排除掉,從而不進行統計
Map<String, String> initParams = new HashMap<>();
initParams.put("exclusions", "*.js,*.css,/druid/*,/jdbc/*");
bean.setInitParameters(initParams);
//"/*" 表示過濾所有請求
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();", "");
// 新建一個過濾器注冊器對象
FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>();
// 注冊common.js文件的過濾器
registration.addUrlPatterns("/druid/js/common.js");
// 添加一個匿名的過濾器對象,并把改造過的common.js文件內容寫入到瀏覽器
registration.setFilter((servletRequest, servletResponse, filterChain) -> {
// 重置緩沖區(qū),響應頭不會被重置
servletResponse.resetBuffer();
// 把改造過的common.js文件內容寫入到瀏覽器
servletResponse.getWriter().write(newJs);
});
return registration;
}
}四、測試 druid 數據源是否啟用
@SpringBootTest(classes = AutoApplication.class)
public class DuridTest {
//DI注入數據源
@Autowired
private DataSource dataSource;
@Test
public void contextLoads() throws SQLException {
//看一下默認數據源
System.out.println(dataSource.getClass());
//獲得連接
Connection connection = dataSource.getConnection();
System.out.println(connection);
DruidDataSource druidDataSource = (DruidDataSource) dataSource;
System.out.println("druidDataSource 數據源最大連接數:" + druidDataSource.getMaxActive());
System.out.println("druidDataSource 數據源初始化連接數:" + druidDataSource.getInitialSize());
//關閉連接
connection.close();
}
}五、登陸druid后臺控制臺,用戶名及密碼在DruidConfig 配置中
127.0.0.1:65000/druid/login.html

到此這篇關于Springboot項目引入druid安裝部署使用教程的文章就介紹到這了,更多相關Springboot項目引入druid內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java String源碼分析并介紹Sting 為什么不可變
這篇文章主要介紹了Java String源碼分析并介紹Sting 為什么不可變的相關資料,需要的朋友可以參考下2017-02-02
Java中Velocity快速對變量中的引號特殊字符進行轉義
Velocity是一個基于Java的模板引擎,與Freemarker類似,這篇文章主要介紹了Java中Velocity如何對變量中的引號特殊字符進行轉義,主要記錄一下在使用中碰到的要對引號特殊字符進行轉義的問題,需要的朋友可以參考下2023-07-07
Easyui的combobox實現動態(tài)數據級聯效果
這篇文章主要介紹了Easyui的combobox實現動態(tài)數據級聯效果的相關資料,感興趣的小伙伴們可以參考一下2016-06-06

