天天看点

spring 连接池

使用连接池需要添加如下依赖

<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";
    }