首页 > 解决方案 > Java Feign 后备类

问题描述

我正在使用 SpringBoot 1.5.9 版。我不明白为什么我的后备课程不起作用。也许我做错了什么?

我的假客户:

@FeignClient(
        name = "prices",
        url = "${prices.url}",
        configuration = MyFeignConfig.class,
        fallbackFactory = FallbackClass.class
)
public interface PricesFeignClient {

    @GetMapping("/{userId}")
    PriceModel get(
            @PathVariable("userId") String userId
    );

}

这是后备类:

@Component
public class FallbackClass implements FallbackFactory<PricesFeignClient> {

    @Override
    public PricesFeignClient create(Throwable cause) {
        return new PricesFeignClient() {

            @Override
            public PriceModel get(String userId) {
                System.out.println("LALALA");
                return null;
            }
        };
    }
}

理论上,如果我的 Feign 客户端返回错误,我的后备方法应该会奏效。在 Price.url 文件中的 Feign 客户端中,指定了错误的 URL(模拟了我正在调用的远程服务不可用的情况)。知道我的 Feign 客户端应该返回一个错误,并且应该调用 Fallback 类,在控制台中我应该收到消息:“LALALA”

此消息不在控制台中:我的 Fallback 类没有被调用。相反,我收到一条错误消息,指出未找到请求的资源。

请告诉我可能是什么问题?我可以在某个地方犯错吗?

问题是,现在我正试图让我的后备课程开始工作。然后我想用不同的 URL 调用 Fallback 类中的另一个 Fagnet 类,以便在我的主要服务不可用时解决问题。请告诉我。谢谢

标签: javaspring-bootfallbackfeign

解决方案


推荐阅读