【问题标题】:spring boot don't create bean for interfacespring boot不为接口创建bean
【发布时间】:2019-09-08 14:39:40
【问题描述】:

我的 spring boot jpa 有问题。我不能@Autowired我的接口存储库。我使用具有多个项目依赖项的弹簧启动。 interface dao 是我自己的接口实现

我尝试了很多事情

@Repository
public interface DocumentDao extends  Dao<Long, Document>  {

    @Query(querys.findDocumentByUuids)
    public List<Document> findByUuids(@NotEmpty() @Param("uuids") List<String> uuids) ;

    @Query(querys.findDocumentByUuids)
    public Document findByUuid(@NotNull @Param("uuid")String uuid);

be.fgov.minfin.virtualprinter.model.StatusMap 中的字段 statusDescriptionDao 需要一个 bean 类型

【问题讨论】:

  • 当然不会...为什么会这样,Spring Data 只会为扩展Repository 标记接口(或CrudRepository 之类的扩展接口之一)的接口创建动态实例。跨度>
  • 我与扩展存储库有同样的错误。
  • dao 在 spring boot runner 的单独项目中
  • 是否在单独的项目中无关紧要,只要其中的包被@SpringBootApplication注解的类扫描的包覆盖,它就可以工作。我的猜测是您没有遵循 Spring Boot 团队的一般打包指南。

标签: spring spring-boot spring-mvc spring-data-jpa spring-data


【解决方案1】:

Dao 似乎是您的基本接口,因此您可以使用@NoRepositoryBean 对其进行注释,如更详细的here 所述。

理想情况下,您的 Dao 应该扩展存储库方法之一:CrudRepository、JpaRepository 等。

您的DocumentDao 上也不需要@Repository 注释。

【讨论】:

  • 我已经这样做了,但它不起作用。我有同样的错误
猜你喜欢
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 2017-02-03
相关资源
最近更新 更多