druid druid-spring-boot-starter
阅读数:195 评论数:0
跳转到新版页面分类
python/Java
正文
一、概述
druid是阿里开源的数据库连接池。
二、springboot集成druid
1、方式一
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
2、方式二
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
3、数据源配置
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=
这些配置项是DruidDataSource和DruidAbstractDataSource的public final 属性。
name | 配置这个属性的意义在于,如果存在多个数据源,监控的时候,可以通过名字来区分。如果没有配置,将会生成一个名字。 |
jdbcUrl | 连接数据库的url,不同数据不一样。 |
username | 连接数据库的用户名。 |
password | 连接数据库的密码,如果不希望数据密码直接写在配置文件中,可以使用ConfigFilter. https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter |
driverClassName | 这一项可不配置,如果不配置druid会根据url自动识别dbType,然后选择相应的driverClassName。 |
initialSize |
默认值是0,初始化时建立物理连接的个数。初始化发生在显式调用init方法,或者第一次getConnection时。 |
maxActive | 默认8,最大连接池数量。 |
minIdle | 最小连接池数量 |
maxWait | 获取连接时最大等待时间,单位ms。配置了maxWait之后,缺省启用公平锁,并发效率有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。 |
poolPreparedStatement | 默认false,是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提巨大,比如说Oracle。在mysql5.5以下的版本中没有PSCache功能,建议关掉。5.5及以版本有PSCache,建议开启。 |
maxOpenPreparedStatements | 默认-1,当大于0时,poolPreparedStatements自动触发。 |
validationQuery |
用来检测连接是否有效的sql,要求是一个查询语句,一般为select 1。如果validationQuery为null, testOnBorrow, testOnReturn, testWhileIdle都不起作用。 |
testOnBorrow | 默认true,申请连接时检测连接是否生效,这个配置会降低性能。 |
testOnReturn | 默认false,归还连接时检测连接是否有效,会降低性能。 |
testOnWhileIdle | 默认false,建议设置为true,不影响性能,如果空闲时间大于timeBetweenEvictionRunMillis,执行validationQuery检测连接是否有效。 |
timeBetweenEvictionRunsMillis | 有两个含义:(1)Destroy线程检测连接的时间间隔。(2)testWhileIdle的判断依据。 |
minEvictableIdleTimeMillis | Destory线程中如果检测到当前连接的最后活跃时间和当前时间的差值大于minEvictableIdleTimeMillis,则关闭当前连接。 |
connectionInitSqls | 物理连接初始化的时候执行的sql。 |
filters | 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控用的stat, 日志用的log4j, 防御sql注入的wall |
removeAbandoned |
对于建立时间超过removeAbandonedTimeout的连接强制关闭。 |
removeAbandonedTimeout | 指定连接建立多长时间就需要被强制关闭。 |
logAbandoned | 指发生removeabandoned的时候,是否记录当前线程的堆栈信息到日志中。 |
三、关键配置项的详细说明
1、timeBetweenEvictionRunsMillis
可以控制空闲连接数的回收周期;可以控制回收泄漏连接的周期;连接的空闲时间大于该值testWhileIdle才起作用。
默认值为60s,主要作用于两个地方:
(1)作为DestroyTask执行的时间周期,Destroy主要有两个作用
判断连接池的连接空闲数是否大于minIdle,如果是则关闭多余的连接,反之则新增连接 |
回收连接池泄漏的连接 |
(2)作为验证连接是否有效的时间周期
如果testOnBorrow为false,并且testWhileIdle为true,则在应用获取连接的时候会判断连接的空闲时间是否大于timeBetweenEvictionRunsMillis,如果大于则会验证该连接是否有效。
2、validationQuery
// 连接有效性检测,MySQL支持两种
(ping和validationQuery sql,默认为ping,其他数据库只支持validationQuery )
druid.mysql.usePingMethod
validationQuery
相关推荐
一、概述
Druid(德鲁伊)是Java语言中的数据库连接池,Spring Boot 2.x默认使用Hikari数据源,虽然HikariCP的速度稍快,但是,Druid能够提供强大的监控和扩展功能。
一、request uri部分 @PathVariable
获取路径参数,形如url/{id}
二、request header部分 @RequestHeade
一、概述
一个项目使用多个数据库(无论是主从复制--读写分离还是分布式数据库结构)的重要性变得越来越明显,整合的多数据源有两种方式:分包和aop。
1、SqlSessionTemplate
SqlSe
一、概述
PageHelper是开源免费的mybatis第三方分页插件。
二、使用
1、pom引入
<dependency>
<groupId>com.github.pageh
一、日志框架的介绍
Spring Boot 2.*默认采用slf4j+logback的形式,slf4j是个通用的日志门面,logback就是个具体的日志框架了。
一、问题解决方式
@PostMapping("/insert")
@ResponseBody
private ResultVO insert1(@RequestParam Map<String, St
JJWT 全称Java Json Web Token。
而JWT是一种在两方之间传输信息的方法,在jwt的主体中编码的信息被称为claims。jwt的扩展形式是json,因此每个c
一、概述
@EnableConfigurationProperties注解的作用是:让使用了@ConfigurationProperties注解的类生效,并且将该类注入到IOC容器中,交由IOC容器进
1、配置文件的格式
springboot可以识别两种格式的配置文件,分别是yml文件与properties文件,我们可以将application.properties文件换成a