SpringBoot整合Druid數(shù)據(jù)庫連接池的方法
一,Druid是什么?
Druid是Java語言中最好的數(shù)據(jù)庫連接池。Druid能夠提供強大的監(jiān)控和擴展功能。
二, 在哪里下載druid
maven中央倉庫: http://central.maven.org/maven2/com/alibaba/druid/
三, 怎么獲取Druid的源碼
Druid是一個開源項目,源碼托管在github上,源代碼倉庫地址是 https://github.com/alibaba/druid。同時每次Druid發(fā)布正式版本和快照的時候,都會把源碼打包,你可以從上面的下載地址中找到相關(guān)版本的源碼
SpringBoot整合Druid數(shù)據(jù)庫連接池的方法。
項目配置
pom.xml
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> <!--自啟動Druid管理后臺--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency>
application.yml
server: port: 8080 spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 25 filters: stat,wall,slf4j connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 useGlobalDataSourceStat: true cache: type: redis redis: host: 127.0.0.1 port: 6379 password: pool: max-active: 100 max-idle: 10 max-wait: 100000 lettuce: shutdown-timeout: 0 timeout: 5000 database: 0 thymeleaf: cache: false; mybatis: mapper-locations: classpath:zhw.example.zhw.loginModule.loginDao/*.xml
配置JdbcConfig
package zhw.example.zhw.loginModule.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class JdbcConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource dataSource(){
return new DruidDataSource();
}
/**
* 配置Druid監(jiān)控
*
* @return StatViewServlet
*/
@Bean
public ServletRegistrationBean servletRegistrationBean() {
ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
Map<String, String> map = new HashMap<>();
//訪問的用戶名密碼
map.put(StatViewServlet.PARAM_NAME_USERNAME, "root");
map.put(StatViewServlet.PARAM_NAME_PASSWORD, "root");
//允許訪問的ip,默認是所有ip
map.put(StatViewServlet.PARAM_NAME_ALLOW, "");
//禁止訪問的ip
map.put(StatViewServlet.PARAM_NAME_DENY, "192.168.1.1");
bean.setInitParameters(map);
return bean;
}
/**
* 配置一個監(jiān)控的filter
*
* @return WebStatFilter
*/
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<>();
bean.setFilter(new WebStatFilter());
Map<String, String> map = new HashMap<>();
//移除這些監(jiān)聽
map.put(WebStatFilter.PARAM_NAME_EXCLUSIONS, "*.js,*.css,/druid/*,*.gif,*.jpg,*.png");
bean.setInitParameters(map);
//攔截所有請求,全部都要走druid監(jiān)聽
bean.setUrlPatterns(Collections.singletonList("/*"));
return bean;
}
}
測試配置url白名單
如果工程中配置了Apache Shiro,需要在配置類中添加白名單

監(jiān)控界面

到此這篇關(guān)于SpringBoot整合Druid數(shù)據(jù)庫連接池的方法的文章就介紹到這了,更多相關(guān)SpringBoot整合Druid數(shù)據(jù)庫連接池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot中Druid連接池與多數(shù)據(jù)源切換的方法
- SpringBoot整合mybatis使用Druid做連接池的方式
- Springboot中加入druid連接池
- springboot2.0配置連接池(hikari、druid)的方法
- SpringBoot整合Druid實現(xiàn)數(shù)據(jù)庫連接池和監(jiān)控
- springboot項目整合druid數(shù)據(jù)庫連接池的實現(xiàn)
- springboot集成druid連接池配置的方法
- springboot整合druid連接池的步驟
- SpringBoot使用 druid 連接池來優(yōu)化分頁語句
- 解決Spring Boot中Druid連接池“discard long time none received connection“警告
相關(guān)文章
一文搞懂Java?ScheduledExecutorService的使用
JUC包(java.util.concurrent)中提供了對定時任務(wù)的支持,即ScheduledExecutorService接口。本文主要對ScheduledExecutorService的使用進行簡單的介紹,需要的可以參考一下2022-11-11
Idea2020.2創(chuàng)建JavaWeb項目(部署Tomcat)方法詳解
這篇文章主要介紹了Idea2020.2創(chuàng)建JavaWeb項目(部署Tomcat)方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
Springboot四種事件監(jiān)聽的實現(xiàn)方式詳解
這篇文章主要介紹了Springboot四種事件監(jiān)聽的實現(xiàn)方式,事件監(jiān)聽是一種機制,可以定義和觸發(fā)自定義的事件,以及在應(yīng)用程序中注冊監(jiān)聽器來響應(yīng)這些事件,需要的朋友可以參考下2022-06-06

