首页> 文章> 详情

Spring Cloud FeignClient fallbackFactory配置详解

教程分享 > Java教程 (1536) 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注册服务器,以及...
错误信息 spring cloud 启动报错 No spring.config.import property has been defined 环境说明 spring ...
项目源码下载:(访问密码:9987)spring-cloud-apigateway_zuul.zip学习使用Netflix Zuul及其与Spring Cloud 的牢固结合来创建负载均衡器
从nacos2.2.x spring cloud alibaba 2021.x开始,nacos默认需要配置用户名和密码,如下所示
项目源码下载:(访问密码:9987)spring-cloud-dashboards.zip在交付基于微服务的应用程序时,广泛使用 Spring Boot 和 Spring Cloud
Java编程之Spring Cloud Hystrix Circuit熔断/断路