当前位置: 首页 > 知识库问答 >
问题:

如何从自定义实现引用“正常”spring数据回购?

夹谷阳夏
2023-03-14

我想用自定义实现扩展JParepository,因此添加了一个MyRepositoryCustom接口和一个扩展该接口的MyRepositoryImpl类。

有没有方法在我的自定义类中调用jparepository中的方法?

注意:这也是在https://stackoverflow.com/a/11881203/40064上作为评论提出的,但我认为这很常见,值得单独提出一个问题。

共有1个答案

南门新荣
2023-03-14

要将核心存储库接口注入自定义实现,请将提供程序 注入自定义实现。

要使其工作的核心挑战是正确设置依赖注入,因为您将要在将要扩展的对象和扩展之间创建循环依赖。然而,这可以通过以下方式解决:

interface MyRepository extends Repository<DomainType, Long>, MyRepositoryCustom {
  // Query methods go here
}

interface MyRepositoryCustom {
  // Custom implementation method declarations go here
}

class MyRepositoryImpl implements MyRepositoryCustom {

  private final Provider<MyRepository> repository;

  @Autowired
  public MyRepositoryImpl(Provider<MyRepository> repository) {
    this.repository = repository;
  }

  // Implement custom methods here
}

这里最重要的部分是使用提供程序 ,这将导致Spring为该依赖项创建一个懒散初始化的代理,即使它首先为myRepository创建实例。在自定义方法的实现中,您可以使用….get()-方法访问实际的bean。

provider是来自@injectJSR的接口,因此是一个标准化接口,需要对API JAR的附加依赖。如果您只想坚持使用Spring,可以使用objectFactory作为替代接口,但会得到完全相同的行为。

 类似资料:
  • 我有个问题。我制作了一个使用spring-data的应用程序,并使用spring-data-rest将其公开为REST服务。一切都很顺利,直到我想有一个定制的实现。我用一个附加的方法创建了一个CustomSomethingRepository和一个SomethingRepositoryImpl。Spring data repository接口扩展了CustomSomethingRepository

  • http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/repositories.html Spring Data的MongoTemplate和MongoRepository有什么区别? 我这样做是因为我需要使用MongoTemplate进行特殊查询。 这里也描述了这个问题,但解决方案似

  • 我正在使用Spring开发一个应用程序。在Access Control Access一节中,我想使用Spring Security Acl(我是Acl的新手)。我想在我的应用程序中实现ACL基于两点: 应用程序应该具有以下五种权限:、、、和。 权限是分层的,当用户具有权限时,它应该能够,或者当用户具有权限时,它应该能够、和等。 更新: 我的应用程序是基于Spring MVC RESTful的。当用

  • 本文向大家介绍Java如何实现自定义异常类,包括了Java如何实现自定义异常类的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java如何实现自定义异常类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 自定义异常类步骤   创建一个类继承异常父类Exception   在具体的实现方法首部抛出异常类(自己创建的那个类),throws的

  • 我正试图修改这个来自的前馈网络https://github.com/yunjey/pytorch-tutorial/blob/master/tutorials/01-basics/feedforward_neural_network/main.py 使用我自己的数据集。 我定义了一个自定义数据集,其中两个1微米数组作为输入,两个标量对应的输出: 我已更新超参数以匹配新的输入大小(2) 我还改变了t

  • TL;DR:如何选择一个WP REST API自定义endpoint的响应的每一点信息? 长版 如果我想使用WP REST API构建自定义endpoint - 从不同的帖子类型发送特定帖子数据 - 按照手册中的示例,我得到了这个: 但是get_post()函数没有返回一些数据,如果您希望在页面中显示帖子,这些数据是非常有用的(例如类别id、特色图片)。那么,我如何构建一个自定义endpoint来