spring boot配置druid(德鲁伊)
spring boot配置druid(德魯伊)
關于druid的介紹請看 阿里巴巴溫少訪談
1.引入相關依賴,全部依賴是上一篇spring boot+mybatis依賴的基礎上,再加上下邊的依賴,如下:
<!-- Druid數據庫連接池組件 --> <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.18</version> </dependency>注意,由于druid的配置還需要一些注解,比如@WebInitParam @WebFilter 等,它們在spring boot里來自于tomcat-embed-core包,而該包又來自于spring-boot-starter-web,所以,除了上邊的依賴以外,一定要保證spring-boot-starter-web 的引入,我項目引入具體如下:
<!-- Spring Boot Web 依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.18</version></dependency></dependency>2.在spring boot項目里的配置文件application.properties 文件中加入如下內容:
##數據庫連接信息 spring.datasource.url=jdbc:oracle:thin:@//127.0.0.1:1521/orcl spring.datasource.username=nqsd spring.datasource.password=nqsd spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver ###################以下為druid增加的配置########################### spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # 下面為連接池的補充設置,應用到上面所有數據源中 # 初始化大小,最小,最大 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置獲取連接等待超時的時間 spring.datasource.maxWait=60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 配置一個連接在池中最小生存的時間,單位是毫秒 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 FROM DUAL spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false # 打開PSCache,并且指定每個連接上PSCache的大小 spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用于防火墻 spring.datasource.filters=stat,wall,log4j # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 合并多個DruidDataSource的監控數據 #spring.datasource.useGlobalDataSourceStat=true ###############以上為配置druid添加的配置########################################druid本身就是為了擴展jdbc的功能,而dataSource對象就是jdbc的配置,所以,上邊多加的那些dataSource配置,也能理解,具體是什么功能我沒有一一看過。
3.還需要添加3個配置類,如下:
package microservice.qssj.config; import javax.sql.DataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.alibaba.druid.pool.DruidDataSource; /*** 配置druid需要的配置類,引入application.properties文件中以spring.datasource開頭的信息* 因此需要在application.properties文件中配置相關信息。* @author Administrator**/ @Configuration public class DruidConfig {@Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource druidDataSource() { DruidDataSource druidDataSource = new DruidDataSource(); return druidDataSource; } }上圖可以看出只是將DataSource對象的實現類變為了DruidDataSource對象。
下圖是過濾規則的配置。
package microservice.qssj.config;import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebInitParam; import com.alibaba.druid.support.http.WebStatFilter; /*** 配置druid過濾規則* @author Administrator**/ @WebFilter(filterName="druidWebStatFilter",urlPatterns="/*", initParams={@WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略資源 }) public class DruidStatFilter extends WebStatFilter {}下圖是配置druid頁面的登錄賬號密碼,及黑白名單設置。
package microservice.qssj.config; import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; import com.alibaba.druid.support.http.StatViewServlet; /*** 配置druid頁面配置* @author Administrator**/ @SuppressWarnings("serial") @WebServlet(urlPatterns = "/druid/*", initParams={@WebInitParam(name="allow",value="192.168.1.20,127.0.0.1"),// IP白名單 (沒有配置或者為空,則允許所有訪問)@WebInitParam(name="deny",value="192.168.16.111"),// IP黑名單 (存在共同時,deny優先于allow)@WebInitParam(name="loginUsername",value="admin"),// 用戶名@WebInitParam(name="loginPassword",value="admin"),// 密碼@WebInitParam(name="resetEnable",value="false")// 禁用HTML頁面上的“Reset All”功能}) public class DruidStatViewServlet extends StatViewServlet { }以上三個類配置完之后,需要在啟動類多添加一個注解,即@ServletComponentScan
package microservice.qssj; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.ImportResource; import org.springframework.transaction.annotation.EnableTransactionManagement; /*** 權屬啟動類* @author Administrator*/ @SpringBootApplication @ServletComponentScan //配置druid必須加的注解,如果不加,訪問頁面打不開,filter和servlet、listener之類的需要單獨進行注冊才能使用,spring boot里面提供了該注解起到注冊作用 @MapperScan("microservice.qssj.mapper")//必須加這個,不加報錯,如果不加,也可以在每個mapper上添加@Mapper注釋, //這里還要添加一個總的注解,具體忘記了 public class QssjServiceApplication {public static void main(String[] args) {SpringApplication.run(QssjServiceApplication.class, args);} }注意新添加的三個配置類位置,他們放的包結構位置比啟動類低。
啟動類位置:package microservice.qssj;
druid配置類位置:package microservice.qssj.config;
4.以上配置完之后,啟動項目以后,可以訪問druid頁面了,比如我的項目端口號是30001,我的訪問頁面如下:(我沒有配置項目名,默認spring boot頁面從“/”開始)
賬號密碼即為配置類中配置的admin.
如果你有疑問,這個頁面的來源,因為我們配置過程并沒有配置index.html頁面,我估計它應該在引入的druid的jar包里,具體未知我沒有找過。
訪問方式都是固定的/druid/index.html或者是/druid/login.html。
總結
以上是生活随笔為你收集整理的spring boot配置druid(德鲁伊)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直播回放 | 人工智能强化金融风控(附P
- 下一篇: 第四范式AI新品发布会报名开启(8月20