我已经在用户定义的接口中扩展了CrudRepository<ClassName, Id>
,但是在尝试使用@Autowired
注入时,我得到了以下错误:
创建名为"helloController"的 bean:未满足的依赖项 通过字段"danCorePrivateRepository"表示;嵌套异常 is org.springframework.beans.factory.NoSuchBeanDefinitionException: No 合格豆类型 'com.sgcorp.repository.DanCorePrivateRepository' 可用:预期 至少 1 个符合自动连线候选条件的 Bean。
您好控制器.java
@RestController
@RequestMapping("/hello")
public class HelloController {
@Autowired
private DanCorePrivateRepository danCorePrivateRepository;
@RequestMapping(value = "/service", method= RequestMethod.GET)
public String selectService(){
String result = "<html>";
result += "<div>"+danCorePrivateRepository.findAll()+"</div>";
return result+ "</html>";
}
}
DanCorePrivateRepository.java(用户定义的界面(
public interface DanCorePrivateRepository extends CrudRepository<DanaModel, String> {
}
请建议为什么它不能正确@Autowired?
注意:对于其他一些项目,它正在工作。
请在配置类的顶部添加@EnableJpaRepositories注释。 这个@EnableJpaRepositories注释具有basePackages或basePackageClasses属性,通过该属性,您可以指定要由Spring Data JPA扫描的软件包(用@Repository注释
我认为您错过了用户定义的接口DanCorePrivateRepository
上的注释@RepositoryRestResource
和@Repository
。您必须将其标记为以下内容 -
@Repository
@RepositoryRestResource
public interface DanCorePrivateRepository extends CrudRepository<DanaModel, String> {
}
@RepositoryRestResource
注释将指导 Spring 为您的仓库创建 RESTful 端点。