/** *解释 primary 属性的含义: * 作为主要 Bean: * 当 primary 属性设置为 true 时(默认值),Feign 代理将会被标记为主要的 Bean。这意味着,当存在多个同类型的 Bean 时,Spring IoC 容器会优先选择标记为主要的 Bean 作为自动装配的对象。 * 主要的 Bean 在自动装配时具有优先权,如果没有明确指定注入哪一个 Bean,则会选择主要的 Bean。 * 默认值: * 默认情况下,primary 属性的值为 true,这意味着 Feign 代理会默认被标记为主要的 Bean。这通常是为了确保在没有明确指定其他优先级的情况下,Feign 代理能够被正确地注入和使用。 * 使用场景: * 如果你的应用中有多个相同类型的 Bean(例如多个 Feign 客户端接口),并且你希望某一个 Feign 客户端在注入时具有优先权,则可以通过设置 primary = true 来确保它被优先选择。 * 如果有特定情况需要另外的 Feign 客户端优先注入,你可以根据实际情况设置不同的 primary 属性值,或者通过其他手段指定具体的 Bean。 * 默认是primary = true * * decode404 = true如果出现404,不报异常,path是调用目标服务的上下文 * * value = "feign-2"是注册中心,例如consul上出现的值 * * contextId作为feignClient的唯一标识ID,值可以自定义 */ @FeignClient(value = "feign-service", path = "/feign-service", contextId = "feign-service", decode404 = true, fallback = Feign2FallBack.class ) public interface Feign2Client { @GetMapping(value = "/json/api") Object api(); @PostMapping(value = "/json/format") Object format(@RequestBody Map map); }