@FeignIgnore 注解主要用于在使用 Netflix Feign 进行服务调用接口定义时,指定某些方法或者整个接口不参与 Feign 客户端的生成过程。这在一些情况下非常有用,例如接口中的某些方法可能是本地方法,不需要通过 Feign 进行远程调用,或者在测试环境中需要临时忽略某些远程调用接口等。
假设你有一个 SimpleFeign 接口,用于通过 Feign 调用远程服务,但其中 ignore() 方法是本地辅助方法,不需要远程调用。例如:
@FeignIgnore String ignore();
上面示例中,将 ignore() 方法被标注了 @FeignIgnore,所以 Feign 在生成客户端代理时会忽略这个方法,不会尝试为它构建远程调用逻辑。
如果我们尝试调用被 @FeignIgnore 修饰的方法,将会抛出如下异常信息:
下面是 @FeignIgnore 注解的源码:
package feign; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) public @interface FeignIgnore { }
从源码看,@FeignIgnore 注解仅是一个标记注解,没有提供属性。