我有简单的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");
}
答案 0 :(得分:-2)
我试图用方面做的是用我自己的规则添加一些自定义日志。如上所述,我无法添加aop切入点。可以启用假日客户端日志,但其格式在我的情况下不可用。经过一些研究后,我发现可以切换默认的http客户端(我使用的是okhttp客户端)并向该客户端添加自定义记录器/拦截器。我准备了一个小例子。另一个解决方案是您可以向假装客户端添加自定义记录器,但这种方式更灵活。