光 Hikari
其实也没啥好写的,都是比较简单的配置, 光这个名字 看上去很帅气
springboot 2.0 依赖
然后 就不需要导hikari的包了 2.0默认数据库 牛B,
yml文件
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://127.0.0.1:3306/securitytest?useUnicode=yes&characterEncoding=UTF-8&useSSL=false
username: root
password: 123456
hikari:
minimum-idle: 5
idle-timeout: 600000
maximum-pool-size: 10
auto-commit: true
pool-name: MyHikariCP
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: SELECT 1
@Configuration
public class JdbcConfiguration {
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}}
over 但是 我遇到了一个玄学问题, configurationProperties 的属性没赋给DataSource 于是写了一个配置类读取属性
@Order(1)
@Data
@Component
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceBean {@Value("type")
private String type;
@Value("driver-class-name")
private String driverClassName;
@Value("jdbc-url")
private String jdbcUrl;
@Value("username")
private String userName;
@Value("password")
private String password;
@Value("${spring.datasource.hikari.minimum-idle}")
private String minimumIdle;
@Value("${spring.datasource.hikari.idle-timeout}")
private String idleTimeout;
@Value("${spring.datasource.hikari.maximum-pool-size}")
private String maximumPoolSize;
@Value("${spring.datasource.hikari.auto-commit}")
private String autoCommit;
@Value("${spring.datasource.hikari.pool-name}")
private String poolName;
@Value("${spring.datasource.hikari.max-lifetime}")
private String maxLifetime;
@Value("${spring.datasource.hikari.connection-timeout}")
private String connectionTimeOut;
@Value("${spring.datasource.hikari.connection-test-query}")
private String connectionTestQuery;
}
@Order(2)
@Configuration
public class JdbcConfiguration {
@Autowired
DataSourceBean dataSourceBean;@Bean
@Primary
public DataSource dataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName(dataSourceBean.getDriverClassName());
dataSource.setJdbcUrl(dataSourceBean.getJdbcUrl());
dataSource.setUsername(dataSourceBean.getUserName());
dataSource.setPassword(dataSourceBean.getPassword());
dataSource.setMinimumIdle(Integer.parseInt(dataSourceBean.getMinimumIdle()));
dataSource.setIdleTimeout(Integer.parseInt(dataSourceBean.getIdleTimeout()));
dataSource.setMaximumPoolSize(Integer.parseInt(dataSourceBean.
getMaximumPoolSize()));
dataSource.setAutoCommit(Boolean.parseBoolean(dataSourceBean.getAutoCommit())
); dataSource.setPoolName(dataSourceBean.getPoolName());
dataSource.setMaxLifetime(Integer.parseInt(dataSourceBean.getMaxLifetime()));
dataSource.setConnectionTimeout(Integer.parseInt(dataSourceBean.
getConnectionTimeOut()));
dataSource.setConnectionTestQuery(dataSourceBean.getConnectionTestQuery());
return dataSource;
}}
好吧 可以了