Spring Cloud FeignClient fallbackFactory配置详解

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1360)   2024-04-17 12:31:23

Spring Cloud FeignClient fallbackFactory配置详解

一般FeignClient需要指定一个fallbackFactory或者fallback,一个一个接口的实现然后返回通用的错误代码有些重复工作。所以下面通过Java代理的方式来创建一个统一的fallbackFactory

首先是@FeignClient接口


/**
 * Spring Cloud API 类
 */
@FeignClient(value = "hws-srv-wrk",fallbackFactory = ServiceWorkApiFallback.class)
public interface IServiceWorkApi {

    /**********<Rzjl>XGeneratorCodeStart**********/
    @PostMapping("/rzjl/add")
    Boolean rzjlAdd(@RequestBody Rzjl entity);
    @PostMapping("/rzjl/addBatch")
    Boolean rzjlAddBatch(@RequestBody List<Rzjl> entityList);
    @PostMapping("/rzjl/deleteById/{id}")
    Boolean rzjlDeleteById(@PathVariable Serializable id);
    @PostMapping("/rzjl/deleteByIds")
    Boolean rzjlDeleteByIds(@RequestBody List<Serializable> idList);
    @PostMapping("/rzjl/updateById")
    Boolean rzjlUpdateById(@RequestBody Rzjl entity);
    @PostMapping("/rzjl/updateBatchById")
    Boolean rzjlUpdateBatchById(@RequestBody List<Rzjl> entityList);
    @PostMapping("/rzjl/findById/{id}")
    Rzjl rzjlFindById(@PathVariable Serializable id);
    @PostMapping("/rzjl/findByIds")
    List<Rzjl> rzjlFindByIds(@RequestBody List<Serializable> idList);
    @PostMapping("/rzjl/findAll")
    List<Rzjl> rzjlFindAll();
	@PostMapping("/rzjl/findList")
    List<Rzjl> rzjlFindList(@RequestBody SelectFilter<Rzjl> selectFilter);
	@PostMapping("/rzjl/findPage")
    Page<Rzjl> rzjlFindPage(@RequestBody Paging<Rzjl> paging);
    /**********<Rzjl>XGeneratorCodeEnd**********/

	/**********<Xlxw>XGeneratorCodeStart**********/
    @PostMapping("/xlxw/add")
    Boolean xlxwAdd(@RequestBody Xlxw entity);
    @PostMapping("/xlxw/addBatch")
    Boolean xlxwAddBatch(@RequestBody List<Xlxw> entityList);
    @PostMapping("/xlxw/deleteById/{id}")
    Boolean xlxwDeleteById(@PathVariable Serializable id);
    @PostMapping("/xlxw/deleteByIds")
    Boolean xlxwDeleteByIds(@RequestBody List<Serializable> idList);
    @PostMapping("/xlxw/updateById")
    Boolean xlxwUpdateById(@RequestBody Xlxw entity);
    @PostMapping("/xlxw/updateBatchById")
    Boolean xlxwUpdateBatchById(@RequestBody List<Xlxw> entityList);
    @PostMapping("/xlxw/findById/{id}")
    Xlxw xlxwFindById(@PathVariable Serializable id);
    @PostMapping("/xlxw/findByIds")
    List<Xlxw> xlxwFindByIds(@RequestBody List<Serializable> idList);
    @PostMapping("/xlxw/findAll")
    List<Xlxw> xlxwFindAll();
	@PostMapping("/xlxw/findList")
    List<Xlxw> xlxwFindList(@RequestBody SelectFilter<Xlxw> selectFilter);
	@PostMapping("/xlxw/findPage")
    Page<Xlxw> xlxwFindPage(@RequestBody Paging<Xlxw> paging);
    /**********<Xlxw>XGeneratorCodeEnd**********/

}


创建一个类实现FallbackFactory接口

@Component
public class ServiceAdminCenterFallback implements FallbackFactory<IServiceAdminCenterAPI>, Serializable {

    private IServiceAdminCenterAPI service;

    public ServiceAdminCenterFallback() {
        this.service = (IServiceAdminCenterAPI) GlobalInvocationHandler.newInstance(new Class[]{ IServiceAdminCenterAPI.class });
    }

    @Override
    public IServiceAdminCenterAPI create(Throwable throwable) {
        return this.service;
    }

}


代理创建接口工具GlobalInvocationHandler

登录后查阅

此处内容已经隐藏,需要登录后刷新查阅

登录/注册








 

地址:https://www.leftso.com/article/1024.html

相关阅读

Spring Cloud FeignClient fallbackFactory配置详解一般FeignClient需要指定一个fallbackFactory或者fallback,一个一个接口的实...
@FeignClient 配置 fallback无效 解决检查配置文件中是否有以下配置片段feign: hystrix: enabled: true该配置不依赖hystrix,仅fe...
在spring cloud项目中配置配置服务的地址spring.cloud.config.uri不生效的解决办法,spring cloud
随着Spring Cloud 的越来越流行,国内很多公司也在开始使用该框架了
项目源码下载:(访问密码:9987)Spring-Cloud-Circuit-Breaker.zip学习在调用底层微服务的同时利用调用的Spring Cloud Netflix堆栈组件之一Hys...
演示项目源码下载:(访问密码:9987)spring-cloud-zipkin.zipZipkin是非常有效的工具分布追踪在微服务生态系统
演示项目源码下载:(访问密码:9987)spring-cloud-config-server-git.zip微服务方法现在已经成为任何新 API 开发的行业标准,几乎所有组织都在推广它
演示项目源码下载:(访问密码:9987)Spring-Cloud-discovery-server.zip 了解如何创建微服务的基础上,Spring Cloud,对Netflix的Eureka注...
在这个 Spring cloud 教程中,学习在 spring boot/cloud 项目中使用 Netflix Ribbon 使用客户端负载平衡
演示项目源码下载:(访问密码:9987)Spring-Cloud-Consoul.zip了解如何创建微服务的基础上Spring cloud,对登记HashiCorp Consul注册服务器,以及...