SpringBoot使用druid连接池的配置 - 极悦
首页 课程 师资 教程 报名

SpringBoot使用druid连接池的配置

  • 2022-08-16 07:49:42
  • 4053次 极悦

Druid Spring Boot 启动器

Druid Spring Boot Starter 用于帮助您在 Spring Boot 项目中轻松集成 Druid 数据库连接池和监控。

如何使用

将 druid-spring-boot-starter 依赖添加到 Spring Book 项目中

<依赖> 
   < groupId > com.alibaba </ groupId > 
   < artifactId > druid-spring-boot-starter </ artifactId > 
   < version > 1.1.5 </ version > 
</ dependency >
编译 'com.alibaba:druid-spring-boot-starter:1.1.5'

添加配置

xml
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
#... 其他配置(可选,非必须,使用嵌入式数据库,以上三项也可省略填写)

配置属性

Druid Spring Boot Starter 配置属性的名称完全符合 Druid。可以通过 Spring Boot 配置文件配置 Druid 数据库连接池和监控,如果没有则使用默认值。

JDBC 配置

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=

连接池配置

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,配置_configure WebStatFilter 
spring .datasource .druid .web -stat-filter .enabled = #StatFilter默认值是否开启
spring .datasource .druid .web -stat-filter .url -模式=
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 配置
spring .datasource .druid .stat -view-servlet .enabled = #StatViewServlet 默认值是否开启
spring .datasource .druid .stat -view-servlet 。网址-模式=
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关联监控配置
spring .datasource .druid .aop -patterns= # Spring监控AOP入口点,如xyzservice。*, 并配置多个英文逗号
分隔 # 如果spring.datasource.druid.aop-patterns要代理的类没有定义接口,设置spring.aop.proxy-target-class=true

Druid Spring Boot Starter 不限于支持上述配置属性。将支持DruidDataSource内部提供 setter 方法的可配置属性。您可以查阅 WIKI 文档或通过 IDE 输入提示进行配置。您可以选择配置文件格式。属性或。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 Data Source 1配置,继承spring.datasource.druid。* 配置,并覆盖相同
...
spring.datasource.druid.one.max-active=10
spring.datasource.druid.one.max-wait=10000
...
# Druid Data Source 2配置,继承spring.datasource.druid。* 配置,并覆盖相同
...
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();
}

如何配置过滤器

可以通过 spring.datasource.druid.filters=stat,wall,log4j... 启用对应的内置过滤器,但是这些过滤器都是默认配置。如果默认配置不能满足你的需求,你可以放弃这种方式,通过配置文件配置Filter。这是一个例子。

# 配置统计过滤器
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
# 配置墙过滤器
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
# 其他过滤器配置不再演示

当前为以下过滤器提供了配置支持,无论是在文档中还是根据 IDE 提示符(spring.datasource.druid.filter.*)。

- StatFilter

- WallFilter

- ConfigFilter

- EncodingConvertFilter

- Slf4jLogFilter

- Log4jFilter

- Log4j2Filter

- CommonsLogFilter

要使自定义过滤器配置起作用,您需要将相应过滤器的启用设置为true。Druid Spring Boot Starter 默认会启用 StatFilter。您还可以将其启用设置为 false 以禁用它。

IDE提示支持

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交