如何使用 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

参考 link : https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M2-Release-Notes#default-connection-pool