Spring:通过字段表示不满意的依赖,CrudRepository扩展接口

时间:2018-01-17 11:10:53

标签: java spring spring-data-jpa crud autowired

我在用户定义的界面中扩展了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?

注意:与其他一些项目有关。

2 个答案:

答案 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端点。