spring数据rest中/patch/request之后的调用逻辑

pinkon5k  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(343)

我使用的是spring数据rest。如果对某个特定实体有一个/补丁/请求,我会做某事(在这种情况下,发送一个带有保存对象的事件)。由于springdatarest的原因,我没有/patch/method的代码,所以我尝试使用@repositoryeventhandler和@handleftersave注解

@RepositoryEventHandler
public class MyHandler {
  @HandleAfterSave
  public void handleAfterSave(MyObj obj){
   //Do some after patch logic
  }
 }

它可以工作,但是每次我保存myobj实体时都会调用handleaftersave。我只想在通过/path/request保存对象之后调用我的逻辑。我怎样才能做到呢?也许通过方面?但是,因为我的项目中没有getpatch方法,所以我不知道如何用方面来 Package 它。

zkure5ic

zkure5ic1#

实际上,事件处理程序与 MyObj 班级。所以如果你真的想尊重 url/path 您可以根据请求路径创建处理程序。还有另外一个工作,似乎是工作(我还没有测试它)。
将另一个变量传递给方法签名以获取url路径,并基于此执行操作:下面是一个示例:

@RepositoryEventHandler
public class MyHandler {
  @HandleAfterSave
  public void handleAfterSave(MyObj obj, HttpServletRequest request){

   String uri = request.getRequestURI();   
   if(uri.equals("expected uri")){
      //Do some after patch logic
   }
  }
 }

让我知道这是否有效。

相关问题