gpt4 book ai didi

java - 将 NoSuchBeanDefinitionException 存储库引入服务

转载 作者:行者123 更新时间:2023-12-01 06:09:17 26 4
gpt4 key购买 nike

我刚刚使用 Spring Boot V1.3.5 设置了一个新项目,在尝试将存储库 Autowiring 到服务中时,我不断收到 NoSuchBeanDefinitionException 异常。这很奇怪,因为我还有其他项目以相同的方式设置,工作正常。

我的应用程序类。

package api;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);

System.out.println("-------------------");
System.out.println("The API is running.");
System.out.println("-------------------");
}
}

我的服务。

package api.services;

import api.entity.Project;
import api.repository.ProjectRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ProjectService {

@Autowired
private ProjectRepository projectRepository;

/**
* Saves a project entity into the database.
*
* @param project Project
* @return Project
*/
public Project save(Project project) {

return this.projectRepository.save(project);
}
}

我的存储库。

package api.repository;

import api.entity.Project;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProjectRepository extends CrudRepository<Project, Integer> {

Project findByName(String name);
}

现在我的服务已自动连接到我的 Controller 中,但由于某种原因 Spring 似乎不喜欢我的存储库。

任何人都可以看到什么是错误/缺失的吗?

谢谢。

异常消息是:

Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private api.repository.ProjectRepository api.services.ProjectService.projectRepository; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [api.repository.ProjectRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

最佳答案

代码没有问题。确保您具有正确的依赖项。

有一次,我遇到了同样的问题,只是发现我注入(inject)了一些 spring 数据依赖项,但没有注入(inject)包含其他依赖项集合的 spring-boot-starter-data-jpa ,而我的没有包括所有必要的。

简单地说,删除不必要的依赖项并在 pom.xml 中包含以下内容(如果您使用的是 Maven)

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

关于java - 将 NoSuchBeanDefinitionException 存储库引入服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com