一、在 Spring Boot 項目中加入druid-spring-boot-starter依賴Mavenweb
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.5</version>
</dependency>
Gradlespring
compile ‘com.alibaba:druid-spring-boot-starter:1.1.5’
添加配置sql
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
…其餘配置(可選,不是必須的,使用內嵌數據庫的話上述三項也可省略不填)
配置屬性數據庫
Druid Spring Boot Starter 配置屬性的名稱徹底遵守 Druid,你能夠經過 Spring Boot 配置文件來配置Druid數據庫鏈接池和監控,若是沒有配置則使用默認值。cookie
JDBC 配置session
spring.datasource.druid.url= # 或spring.datasource.url=
spring.datasource.druid.username= # 或spring.datasource.username=
spring.datasource.druid.password= # 或spring.datasource.password=
spring.datasource.druid.driver-class-name= #或 spring.datasource.driver-class-name=
鏈接池配置svg
spring.datasource.druid.initial-size=
spring.datasource.druid.max-active=
spring.datasource.druid.min-idle=
spring.datasource.druid.max-wait=
spring.datasource.druid.pool-prepared-statements=
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=
spring.datasource.druid.max-open-prepared-statements= #和上面的等價
spring.datasource.druid.validation-query=
spring.datasource.druid.validation-query-timeout=
spring.datasource.druid.test-on-borrow=
spring.datasource.druid.test-on-return=
spring.datasource.druid.test-while-idle=
spring.datasource.druid.time-between-eviction-runs-millis=
spring.datasource.druid.min-evictable-idle-time-millis=
spring.datasource.druid.max-evictable-idle-time-millis=
spring.datasource.druid.filters= #配置多個英文逗號分隔
....//more
監控配置
WebStatFilter配置,說明請參考Druid Wiki,配置_配置WebStatFilter
spring.datasource.druid.web-stat-filter.enabled= #是否啓用StatFilter默認值truespring-boot
spring.datasource.druid.web-stat-filter.url-pattern=
spring.datasource.druid.web-stat-filter.exclusions=
spring.datasource.druid.web-stat-filter.session-stat-enable=
spring.datasource.druid.web-stat-filter.session-stat-max-count=
spring.datasource.druid.web-stat-filter.principal-session-name=
spring.datasource.druid.web-stat-filter.principal-cookie-name=
spring.datasource.druid.web-stat-filter.profile-enable=
StatViewServlet配置,說明請參考Druid Wiki,配置_StatViewServlet配置ui
spring.datasource.druid.stat-view-servlet.enabled= #是否啓用StatViewServlet默認值true
spring.datasource.druid.stat-view-servlet.url-pattern=
spring.datasource.druid.stat-view-servlet.reset-enable=
spring.datasource.druid.stat-view-servlet.login-username=
spring.datasource.druid.stat-view-servlet.login-password=
spring.datasource.druid.stat-view-servlet.allow=
spring.datasource.druid.stat-view-servlet.deny=
Spring監控配置,說明請參考Druid Github Wiki,配置_Druid和Spring關聯監控配置url
spring.datasource.druid.aop-patterns= # Spring監控AOP切入點,如x.y.z.service.*,配置多個英文逗號分隔
若是spring.datasource.druid.aop-patterns要代理的類沒有定義interface請設置
spring.aop.proxy-target-class=true
Druid Spring Boot Starter 不只限於對以上配置屬性提供支持,DruidDataSource 內提供setter方法的可配置屬性都將被支持。你能夠參考WIKI文檔或經過IDE輸入提示來進行配置。配置文件的格式你能夠選擇.properties或.yml,效果是同樣的,在配置較多的狀況下推薦使用.yml。
如何配置多數據源
添加配置
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
Druid 數據源配置,繼承spring.datasource.* 配置,相同則覆蓋
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=5
Druid 數據源 1 配置,繼承spring.datasource.druid.* 配置,相同則覆蓋
…
spring.datasource.druid.one.max-active=10
spring.datasource.druid.one.max-wait=10000
…
...
spring.datasource.druid.two.max-active=20
spring.datasource.druid.two.max-wait=20000
...
建立數據源
@Primary
@Bean
@ConfigurationProperties("spring.datasource.druid.one")
public DataSource dataSourceOne(){
return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.two")
public DataSource dataSourceTwo(){
return DruidDataSourceBuilder.create().build();
}
如何配置 Filter
你能夠經過 spring.datasource.druid.filters=stat,wall,log4j … 的方式來啓用相應的內置Filter,不過這些Filter都是默認配置。若是默認配置不能知足你的需求,你能夠放棄這種方式,經過配置文件來配置Filter,下面是例子。
配置StatFilter
spring.datasource.druid.filter.stat.db-type=h2
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=2000
配置WallFilter
spring.datasource.druid.filter.wall.enabled=true
spring.datasource.druid.filter.wall.db-type=h2
spring.datasource.druid.filter.wall.config.delete-allow=false
spring.datasource.druid.filter.wall.config.drop-table-allow=false
其餘 Filter 配置再也不演示
目前爲如下 Filter 提供了配置支持,請參考文檔或者根據IDE提示(spring.datasource.druid.filter.*)進行配置。
StatFilter WallFilter ConfigFilter EncodingConvertFilter Slf4jLogFilter Log4jFilter Log4j2Filter CommonsLogFilter 要想使自定義 Filter 配置生效須要將對應 Filter 的 enabled 設置爲 true ,Druid Spring Boot Starter 默認會啓用 StatFilter,你也能夠將其 enabled 設置爲 false 來禁用它。