Netflix Feign @FeignIgnore 注解

@FeignIgnore 注解主要用于在使用 Netflix Feign 进行服务调用接口定义时,指定某些方法或者整个接口不参与 Feign 客户端的生成过程。这在一些情况下非常有用,例如接口中的某些方法可能是本地方法,不需要通过 Feign 进行远程调用,或者在测试环境中需要临时忽略某些远程调用接口等。

应用示例

忽略接口中的某个方法

假设你有一个 SimpleFeign 接口,用于通过 Feign 调用远程服务,但其中 ignore() 方法是本地辅助方法,不需要远程调用。例如:

@FeignIgnore
String ignore();

上面示例中,将 ignore() 方法被标注了 @FeignIgnore,所以 Feign 在生成客户端代理时会忽略这个方法,不会尝试为它构建远程调用逻辑。

如果我们尝试调用被 @FeignIgnore 修饰的方法,将会抛出如下异常信息:

c43240d084509787892aa8d6b11fc9b0_1730438935037-820b77d0-2e39-4ad8-85df-6b059f30724f.png

源码分析

下面是 @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 注解仅是一个标记注解,没有提供属性。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号