使用连接池需要添加如下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mysql数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
</dependency>
1、默认使用连接池hikari
spring.datasource.url=jdbc:mysql://172.16.xxx.xxx:3306/xxx?characterEncoding=utf-8&serverTimezone=GMT%2b8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.name=xxx
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
测试代码
@RestController
public class GreetingController {
@RequestMapping("/datasource")
public String dataSource(){
DruidDataSource dataSource = SpringUtils.getBean("dataSource");
DruidDataSource druidDataSource = SpringUtils.getBean("druidDataSource");
logger.info("datasource:{}"+String.valueOf(druidDataSource.getMaxActive()));
// JdbcTemplate jdbcTemplate = SpringUtils.getBean("jdbcTemplate");
// logger.info("dataSource:"+jdbcTemplate.getDataSource().getClass());
return "SUCCESS";
}
}
2、可以使用druid连接池,需要添加依赖
<!--druid连接池开始-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.26</version>
</dependency>
<!--druid连接池结束-->
配置如下
spring.datasource.druid.url=jdbc:mysql://ip:3306/xxx?characterEncoding=utf-8&serverTimezone=GMT%2b8&useSSL=false
spring.datasource.druid.username=root
spring.datasource.druid.password=root
spring.datasource.druid.name=name=xxx
spring.datasource.druid.initialSize=10
spring.datasource.druid.minIdle=10
spring.datasource.druid.maxActive=100
spring.datasource.druid.maxWait=60000
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=true
spring.datasource.druid.testOnReturn=true
注入配置:
@Configuration
public class DataSourceConfig {
@ConfigurationProperties(prefix = "spring.datasource.druid")
@Bean(name="dataSource")
public DruidDataSource druidDataSource(){
return new DruidDataSource();
}
}
测试:
@RequestMapping("/datasource")
public String dataSource(){
DruidDataSource dataSource = SpringUtils.getBean("dataSource");
DruidDataSource druidDataSource = SpringUtils.getBean("druidDataSource");
logger.info("datasource:{}"+String.valueOf(druidDataSource.getMaxActive()));
// JdbcTemplate jdbcTemplate = SpringUtils.getBean("jdbcTemplate");
// logger.info("dataSource:"+jdbcTemplate.getDataSource().getClass());
return "SUCCESS";
}