Springboot集成Druid详解
步骤
- 引入依赖
- 在application.yml文件中添加配置
springboot最近出了一个与Druid整合的依赖druid-spring-boot-starter
https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
在POM文件中引入依赖
<!--添加Druid数据源依赖-->
<!-- https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.6</version>
</dependency>
在applicatio.yml文件中添加配置
具体的配置项大家可以参考这篇文章https://www.cnblogs.com/wuyun-blog/p/5679073.html
spring:
datasource:
druid:
url: jdbc:mysql://localhost:/hrm_db
username: root #数据库用户名
password: #数据库密码
db-type: com.alibaba.druid.pool.DruidDataSource #数据源类型启用Druid
driver-class-name: com.mysql.jdbc.Driver #驱动
filters: stat #属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat日志用的filter:log4j防御sql注入的filter:wall
max-active: #最大连接池数量
initial-size: #初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
max-wait: #获取连接时最大等待时间,单位毫秒
min-idle:
time-between-eviction-runs-millis: #1) Destroy线程会检测连接的间隔时间2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明
min-evictable-idle-time-millis:
validation-query: select 'x' #用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。
test-while-idle: true #建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
test-on-return: false #归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
test-on-borrow: false #申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
pool-prepared-statements: false #是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
max-open-prepared-statements: #要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
stat-view-servlet:
enabled: true
url-pattern: "/druid/*"
login-username: admin
login-password: admin
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
filter:
stat:
db-type: mysql
log-slow-sql: true
slow-sql-millis:
mybatis:
mapper-locations: classpath:mapper/*.xml
typeAliasesPackage: com.liusl.hrm.model #它一般对应我们的实体类所在的包,这个时候会自动简单类名作为包括包名的别名取对应包中不包括包名的别名
启动服务,访问http://localhost:8080/druid/index,html