spring-boot-starter-data-jpa 依赖错误
Posted
技术标签:
【中文标题】spring-boot-starter-data-jpa 依赖错误【英文标题】:spring-boot-starter-data-jpa dependency error 【发布时间】:2018-03-01 04:42:13 【问题描述】:我正在使用新版本的 Spring boot - 1.5.7。 但是,当我创建具有 jpa 依赖项的新 spring starter 项目时, 我遇到了奇怪的错误:
原因: org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 “javax.sql.DataSource”类型的合格 bean 可用:预计在 至少 1 个符合自动装配候选资格的 bean。依赖 注释:
谁能帮助我:
这是我的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo-11</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo-11</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
【问题讨论】:
发布您的 application.properties 文件 为了测试问题,我新建了一个带有jpa依赖的spring starter项目,所以我的application.properties文件是空的。但是我以其他方式使用 oracle 数据库,当我添加 oracle 依赖项时,它给了我同样的错误。您需要在依赖项中包含一个数据库。 如果找到数据库,spring boot 会自动为您配置数据源。
请参阅此示例,其中包含一个 h2 数据库。
https://spring.io/guides/gs/accessing-data-jpa/
【讨论】:
我添加了oracle依赖您需要将数据库相关信息放入 application.properties 文件中
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
你需要把数据库依赖放在你的 pom.xml 中
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
这是它在mysql官方网站上的列出方式,您可以尝试使用您选择的数据库。
【讨论】:
我添加了oracle依赖需要根据application.yml文件中使用的数据库,将数据库放在pom.xml文件的依赖中:
-
application.yml 文件:
datasource:
url: jdbc:postgresql://localhost:5432/cadastro-api
username: user
password: password
-
pom.xml 文件:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
【讨论】:
以上是关于spring-boot-starter-data-jpa 依赖错误的主要内容,如果未能解决你的问题,请参考以下文章