0

我有简单的feignclient,如下所示

@FeignClient(name="xxx")
public interface XXXServiceClient { 
   @RequestMapping(value = "/foo/bar", method = RequestMethod.POST)
   public ResponseEntity<XXX>  doSomething(@RequestBody XXX args);
}

我想要的是定义基于弹簧的切入点之前的建议。我可以为具有特定注释的类定义切入点,但它不适用于 feignclient 接口。

例子

@Pointcut("within(@org.springframework.stereotype.Controller *)")
public void controllerMethods() {}


@Before("controllerMethods()")
public void controllerMethodsBeforeAdvice(JoinPoint pjp) {
    System.out.println("Working");
}


@Pointcut("within(@org.springframework.cloud.netflix.feign.FeignClient *)")
public void feignClientMethods() {}


@Before("feignClientMethods()")
public void feignClientMethodsBeforeAdvice(JoinPoint pjp) {
    System.out.println("Not working");
}
4

1 回答 1

-2

我试图用方面做的是用我自己的规则添加一些自定义日志。正如上面提到的评论,我无法添加 aop 切入点。可以启用 feign 客户端日志,但它的格式在我的情况下不可用。经过一番研究,我发现可以切换默认的 http 客户端(我使用 okhttp 客户端)并将自定义记录器/拦截器添加到该客户端。我准备了一个小例子。另一种解决方案是您可以将自定义记录器添加到 feign 客户端,但这种方式更灵活。

springboot 伪装记录器

于 2018-04-10T19:21:19.883 回答