
本文详细介绍在 spring boot 项目中配置远程 postgresql 数据库连接的完整步骤,包括依赖添加、application.properties 配置、jdbc url 格式说明及常见注意事项。
本文详细介绍在 spring boot 项目中配置远程 postgresql 数据库连接的完整步骤,包括依赖添加、application.properties 配置、jdbc url 格式说明及常见注意事项。
要在 Spring Boot 应用中成功连接远程 PostgreSQL 服务器(如 xyz.companyname.com:5432),需完成两个核心环节:引入 PostgreSQL JDBC 驱动 和 正确配置数据源属性。
✅ 1. 添加 PostgreSQL 驱动依赖
确保项目中包含官方 PostgreSQL JDBC 驱动。推荐使用最新稳定版(如 42.7.3,兼容 Spring Boot 3.x;若使用 Spring Boot 2.x,可选 42.5.0 或 42.6.0):
Maven(pom.xml):
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>Gradle(build.gradle):
runtimeOnly 'org.postgresql:postgresql:42.7.3'
⚠️ 注意:Spring Boot 2.4+ 默认不自动配置 spring.datasource.driver-class-name,因此必须确保驱动 JAR 在 classpath 中——显式声明依赖即可,无需手动指定 driver class。
✅ 2. 配置 application.properties
在 src/main/resources/application.properties 中添加以下关键配置(请根据实际环境替换占位值):
# 数据源连接配置 spring.datasource.url=jdbc:postgresql://xyz.companyname.com:5432/my_db?currentSchema=public&ssl=true&sslmode=require spring.datasource.username=your_username spring.datasource.password=your_password # 可选:启用 JPA 自动建表(开发阶段可用,生产环境建议设为 validate 或 none) spring.jpa.hibernate.ddl-auto=validate spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect # 显式声明数据库类型(Spring Boot 3.x 推荐显式设置,增强兼容性) spring.jpa.database=postgresql
? URL 参数说明:
- my_db 是目标数据库名,必须预先在 PostgreSQL 服务器中创建;
- ?ssl=true&sslmode=require 强制启用 SSL 加密连接(生产环境强烈推荐);若服务端未配置 SSL,可临时改为 ?ssl=false(仅限测试);
- currentSchema=public 可指定默认 schema,避免因 search_path 不一致导致表找不到。
✅ 3. 验证与调试建议
- 启动应用时观察日志:成功连接会输出类似 HikariPool-1 - Starting... 和 Connected to PostgreSQL 日志;
- 若报错 Connection refused 或 UnknownHostException,请确认:
✅ 远程服务器 xyz.companyname.com 网络可达(可用 ping / telnet xyz.companyname.com 5432 测试);
✅ PostgreSQL 已配置 pg_hba.conf 允许该 IP 的 host 认证;
✅ postgresql.conf 中 listen_addresses 包含 '*' 或对应 IP; - 使用 Spring Boot Actuator 的 /actuator/health 端点可快速验证数据源健康状态(需添加 spring-boot-starter-actuator 依赖)。
完成以上配置后,Spring Boot 将自动装配 DataSource 和 JpaRepository,您即可通过 @Autowired JdbcTemplate 或自定义 Repository 进行数据库操作。


















