如何使用 Bean 在 Spring Boot 2 中连接到 PostgreSQL
How to connect to PostgreSQL in Spring Boot 2 using a Bean
我想使用 bean (@Bean) 和 Spring 数据连接到 PostgreSQL。
在这个 bean 中,我想在 application.properties 文件中使用我自己的客户属性,例如下面的这些属性
my.db.user=postgres
my.db.password=root
my.db.url=jdbc:postgresql://localhost:5432/mydb
我无法使用默认属性(spring.datasource.url、spring.datasource.username、等等)
您可以通过以下方式使用自定义数据库属性创建自己的数据源。
@Bean
@ConfigurationProperties(prefix="my.db")
public DataSource myDataSource() {
return DataSourceBuilder.create().build();
}
查看以下配置两个数据库的完整示例说明,这说明了如何使用自己的属性
two databases example
Spring Boot 2 默认使用 Hikari 来管理连接。
所以,你可以做到。
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
@Configuration
public class DatabaseConfig {
@Bean
@Primary
@ConfigurationProperties("spring.datasource")
public HikariDataSource dataSource() {
return DataSourceBuilder.create()
.type(HikariDataSource.class)
.build();
}
}
application.properties
spring.datasource.platform=postgres
spring.datasource.jdbc-url=jdbc:postgresql://localhost:5432/dbname
spring.datasource.username=postgres
spring.datasource.password=123456
如果您想使用tomcat-jdbc
,请添加以下配置。
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
我想使用 bean (@Bean) 和 Spring 数据连接到 PostgreSQL。
在这个 bean 中,我想在 application.properties 文件中使用我自己的客户属性,例如下面的这些属性
my.db.user=postgres
my.db.password=root
my.db.url=jdbc:postgresql://localhost:5432/mydb
我无法使用默认属性(spring.datasource.url、spring.datasource.username、等等)
您可以通过以下方式使用自定义数据库属性创建自己的数据源。
@Bean
@ConfigurationProperties(prefix="my.db")
public DataSource myDataSource() {
return DataSourceBuilder.create().build();
}
查看以下配置两个数据库的完整示例说明,这说明了如何使用自己的属性 two databases example
Spring Boot 2 默认使用 Hikari 来管理连接。
所以,你可以做到。
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
@Configuration
public class DatabaseConfig {
@Bean
@Primary
@ConfigurationProperties("spring.datasource")
public HikariDataSource dataSource() {
return DataSourceBuilder.create()
.type(HikariDataSource.class)
.build();
}
}
application.properties
spring.datasource.platform=postgres
spring.datasource.jdbc-url=jdbc:postgresql://localhost:5432/dbname
spring.datasource.username=postgres
spring.datasource.password=123456
如果您想使用tomcat-jdbc
,请添加以下配置。
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource