compile ' com.zaxxer:HikariCP:3.3.1'
用了HikariCP连接池
需要移除默认的tomcat-jdbc
连接池
configurations {
// compile.exclude module: 'commons'
all* . exclude group : ' org.apache.tomcat' , module : ' tomcat-jdbc'
}
修改application.yml
配置,连接池properties
下面所有都注释掉
dataSource :
# 关闭默认连接池
pooled : false
# jmxExport: true
driverClassName : ' ${jdbc.driver}'
username : ' ${jdbc.username}'
password : ' ${jdbc.password}'
url : ' ${jdbc.url}'
dialect : org.hibernate.dialect.MySQL5InnoDBDialect
在grails-app/conf/spring/resources.groovy
中新增配置
package spring
import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
import grails.util.Holders
// Place your Spring DSL code here
beans = {
def config = Holders . config
hikari(HikariDataSource , { bean ->
Properties hp = new Properties ()
hp. username = config. dataSource. username
hp. password = config. dataSource. password
hp. connectionTimeout = 6000
hp. maximumPoolSize = 60
hp. jdbcUrl = config. dataSource. url
hp. driverClassName = config. dataSource. driverClassName
// Hikari连接池
HikariConfig hc = new HikariConfig (hp)
bean. constructorArgs = [hc]
})
}
17 :55 :02.779 [main ] INFO com .zaxxer .hikari .HikariDataSource (HikariDataSource .java :80 ) - HikariPool -1 - Starting ...
17 :55 :02.827 [main ] INFO com .zaxxer .hikari .HikariDataSource (HikariDataSource .java :82 ) - HikariPool -1 - Start completed .
用了HikariCP
连接池还能实现自动重连,比如:数据库宕了,重启数据库,程序也能自动连接上数据库
dataSource:
pooled: false
jmxExport: true
driverClassName: '${jdbc.driver}'
username: '${jdbc.username}'
password: '${jdbc.password}'
type: com.zaxxer.hikari.HikariDataSource
properties:
maximumPoolSize: 20