我刚刚使用Spring Boot V1.3.5设置了一个新项目,并且在尝试将存储库自动装入到服务中时不断收到NoSuchBeanDefinitionException异常。这很奇怪,因为我有其他项目设置相同的方式工作正常。将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);
}
我的服务被自动连接到我的控制器,但春天似乎并不喜欢我出于某种原因库。
任何人都可以看到什么是错的/失踪?
感谢。
异常消息是:
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)}
你有任何具体的实现你的ProjectRepository?它不能仅实例化一个接口。 – Gandalf
当然,你不能实例化一个接口,但我没有实例化它,我自动装配它。我在不同的项目中具有相同的设置,并且工作正常。从文档“但是这正是Spring Data JPA如此强大的原因:您不必编写一个存储库接口的实现。当您运行应用程序时,Spring Data JPA即时创建实现。” –
我试着创建一个类似的示例项目,这是可用[这里](https://github.com/vamsilp/testProjects.git),它为我工作。请公开项目实体类,因为我猜测中的方法签名ProjectRepository可能不正确。 –