丰富spring-data-rest存储库的行为

时间:2017-03-30 09:52:11

标签: java spring rest spring-boot spring-data-rest

我正在使用spring-data-rest存储库来从REST API公开常见的CRUD操作。

但是我需要为这些操作添加其他功能。

e.g。我想将删除的HTTP请求发送给第三方API。

我想知道如何覆盖JpaRepository(或任何其他数据休息回购)提供的某些方法的行为

还不确定这是否应在存储库级别实现或提供自定义控制器......在这种情况下,我担心如何禁用对存储库端点的访问,以便所有操作都通过我的代码。

1 个答案:

答案 0 :(得分:2)

spring-data-rest支持events

您可以扩展AbstractRepositoryEventListener或使用@RepositoryEventHandler注释的类。

在你的情况下,它将是:

public class AfterDeleteEventListener extends AbstractRepositoryEventListener {


  @Override
  public void onAfterDelete(Object entity) {
    //your code here
  }
}

@RepositoryEventHandler (MyClass.class)
public class MyEventHandler {

  @HandleAfterDelete
  public void handleDelete(MyClass p) {
    // your code here
  }


}