Spring Boot配置PostgreSQL数据源失败:未指定'url'属性且无法配置嵌入式数据源
Spring Boot配置PostgreSQL数据源失败:未指定'url'属性且无法配置嵌入式数据源
我完全懂你现在被这个报错折腾的烦躁感——试了各种配置还是卡在这里,咱们一步步拆解问题,把这个数据源配置的坑填上。
先排查几个明显的问题点
1. pom.xml里的重复依赖
我注意到你的依赖中重复引入了spring-boot-starter-data-jpa两次:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- 下面这个是重复的,要删掉 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
重复依赖可能会导致版本冲突或者加载异常,先把其中一个删掉,保持依赖的整洁性。
2. 数据源URL的格式错误
你第一个尝试的application.properties里,URL写法明显不对:
# 错误格式 spring.datasource.url=jdbc:postgresql:5432//localhost/gamestudio
PostgreSQL的JDBC URL正确格式应该是:jdbc:postgresql://<主机地址>:<端口>/<数据库名>,也就是你第二个尝试的格式是正确的,但要确保没有拼写错误:
# 正确格式 spring.datasource.url=jdbc:postgresql://localhost:5432/gamestudio
3. 确认配置文件的位置
一定要保证application.properties是放在src/main/resources目录下,这是Spring Boot默认加载配置文件的位置。如果放错了目录(比如放到了src/main/java里),Spring Boot根本读取不到你的配置,自然会报找不到url的错误。
4. 额外的配置优化(可选但有用)
- Spring Boot 2.x版本之后,
spring.datasource.driver-class-name可以不用手动指定,它会根据URL自动推断驱动类,不过如果要写的话确保是org.postgresql.Driver没问题。 spring.jpa.properties.hibernate.dialect也可以不用手动配置,Spring Boot会根据数据源自动匹配对应的方言,但指定了也不会有问题。
修正后的参考配置
清理后的pom.xml依赖片段
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>RELEASE</version> <scope>test</scope> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.7.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
正确的application.properties配置
spring.datasource.url=jdbc:postgresql://localhost:5432/gamestudio spring.datasource.username=<你的用户名> spring.datasource.password=<你的密码> spring.datasource.hikari.maximumPoolSize=2 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
最后一步:清理并重建项目
做完上面的修改后,执行Maven命令清理缓存并重新构建:
mvn clean install
然后重启你的Spring Boot应用,应该就能正常连接到PostgreSQL数据库了。
备注:内容来源于stack exchange,提问作者Veve K.
相关产品推荐
相关产品推荐

