1. 引入HikariCP依赖

首先,在pom.xml文件中添加HikariCP的依赖。


<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.4.1</version>
</dependency>

2. 配置application.properties文件

接下来,在application.properties文件中配置Hikari连接池的相关属性。


# 数据库连接相关配置
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=123456

# 连接池相关配置
spring.datasource.hikari.poolName=test-pool
spring.datasource.hikari.maximumPoolSize=10
spring.datasource.hikari.minimumIdle=5
spring.datasource.hikari.idleTimeout=30000
spring.datasource.hikari.connectionTimeout=20000

在上面的配置中,有以下几个重要的属性:

  • spring.datasource.url:数据库连接URL。
  • spring.datasource.username:数据库用户名。
  • spring.datasource.password:数据库密码。
  • spring.datasource.hikari.poolName:连接池名称。
  • spring.datasource.hikari.maximumPoolSize:连接池的最大连接数。
  • spring.datasource.hikari.minimumIdle:连接池的最小空闲连接数。
  • spring.datasource.hikari.idleTimeout:连接在池中保持空闲而不被释放的最长时间。
  • spring.datasource.hikari.connectionTimeout:获取连接的超时时间。

3. 创建数据源

接下来,在Spring Boot的配置类中创建数据源并将其配置为@Bean。


import com.zaxxer.hikari.HikariDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;

@Configuration
public class DataSourceConfig {

    @Value("${spring.datasource.url}")
    private String url;
    @Value("${spring.datasource.username}")
    private String username;
    @Value("${spring.datasource.password}")
    private String password;

    @Bean
    public DataSource dataSource() {
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

在上面的代码中,通过@Configuration注解将该类声明为配置类,通过@Bean注解将dataSource方法声明为Spring的Bean。在dataSource方法中,我们创建一个HikariDataSource实例,并设置其URL、用户名和密码属性。最后,返回这个数据源。

4. 使用数据源

现在,我们可以在应用程序中使用这个数据源来访问数据库了。

在需要使用数据库连接的地方,可以通过@Autowired注解将DataSource注入到类中,然后使用它来获取数据库连接。


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    private final JdbcTemplate jdbcTemplate;

    @Autowired
    public UserService(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }

    // 使用jdbcTemplate来执行数据库操作
    // ...
}

在上面的代码中,我们通过@Autowired注解将DataSource注入到UserService类中的构造函数中。然后,使用jdbcTemplate来执行数据库操作。

通过以上步骤,我们成功地配置了Hikari连接池,并在应用程序中使用它来管理数据库连接。