如何在springboot启动时创建好多数据源的db连接池,而不是在调用的时候创建
时间: 2023-12-10 08:42:57 浏览: 30
在 Spring Boot 中,可以使用 Spring Boot Starter JDBC 或 Spring Boot Starter Data JPA 来进行数据库连接池的配置。这些 Starter 提供了默认的数据库连接池实现,如 HikariCP、Tomcat JDBC 等。
如果要在启动时就创建多个数据源的连接池,可以在 application.properties 或 application.yml 文件中配置多个数据源的连接信息。例如:
```
# 第一个数据源
spring.datasource.url=jdbc:mysql://localhost:3306/db1
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 第二个数据源
spring.datasource.secondary.url=jdbc:mysql://localhost:3306/db2
spring.datasource.secondary.username=root
spring.datasource.secondary.password=123456
spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver
```
然后,在 Java 代码中,可以使用 @Qualifier 注解来指定要使用哪个数据源。例如:
```
@Autowired
@Qualifier("primaryDataSource")
private DataSource primaryDataSource;
@Autowired
@Qualifier("secondaryDataSource")
private DataSource secondaryDataSource;
```
在使用 @Qualifier 注解时,需要结合 @Bean 注解一起使用,来创建 DataSource 对象并指定其名称。例如:
```
@Configuration
public class DataSourceConfig {
@Bean(name = "primaryDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "secondaryDataSource")
@ConfigurationProperties(prefix = "spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
}
```
在上面的代码中,通过 @ConfigurationProperties 注解来将配置文件中的属性绑定到 DataSource 对象上。然后,使用 @Bean 注解来将 DataSource 对象注册到 Spring 容器中,并指定其名称。这样,在其他地方需要使用 DataSource 时,可以通过 @Qualifier 注解来指定要使用哪个数据源。