我在用户定义的界面中扩展了CrudRepository<ClassName, Id>
,但在尝试使用@Autowired
进行注入时,我得到以下错误:
创建名为'helloController'的bean:不满意的依赖项 通过字段'danCorePrivateRepository'表示;嵌套异常 是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有 合格的bean类型 'com.sgcorp.repository.DanCorePrivateRepository'可用:预期 至少有1个符合autowire候选资格的bean。
HelloController.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?
注意:与其他一些项目有关。
答案 0 :(得分:1)
请在配置类的顶部添加@EnableJpaRepositories注释。此@EnableJpaRepositories注释具有basePackages或basePackageClasses属性,您可以通过该属性指定要由Spring Data JPA扫描的包(使用@Repository注释)。
答案 1 :(得分:-2)
我认为您在用户定义的界面@Repository
上遗漏了注释DanCorePrivateRepository
和@Repository
@RepositoryRestResource
public interface DanCorePrivateRepository extends CrudRepository<DanaModel, String> {
}
。你必须按如下方式标记 -
@RepositoryRestResource
"abc"
注释将指示Spring为您的存储库创建RESTful端点。