当前位置:   article > 正文

Springcloud项目整合openfeigin_springcloud整合openfeign

springcloud整合openfeign

Springcloud项目整合openfeigin

文章目录


前言

springcloud整合openfeigin实现第三方效验接口


提示:以下是本篇文章正文内容,下面案例可供参考

一、openfeign是什么?

OpenFeign 是一个基于 Java 的声明式 HTTP 客户端框架,用于简化调用 RESTful 服务的过程。它是 Netflix 开发的,旨在简化基于 HTTP 的 API 调用,特别是微服务架构中的服务间通信

二、使用步骤

代码如下(示例):

  1. 添加依赖:首先,在你的项目中添加 OpenFeign 的依赖。如果你是使用 Maven 来管理项目,可以在 pom.xml 文件中添加以下依赖
    1. <dependency>
    2. <groupId>org.springframework.cloud</groupId>
    3. <artifactId>spring-cloud-starter-openfeign</artifactId>
    4. </dependency>

  2. 启用 OpenFeign:在 Spring Boot 应用程序的主类上添加 @EnableFeignClients 注解,以启用 OpenFeign。
    1. //标记启动类
    2. @SpringBootApplication (scanBasePackages = OpenPowerConstants.BASE_SCAN_PACKAGE)
    3. //启用服务发现客户端功能
    4. @EnableDiscoveryClient
    5. //这个注解用于启用 Feign 客户端功能,参数指定了需要扫描的 Feign 客户端接口所在的包路径
    6. @EnableFeignClients (basePackages = OpenPowerConstants.BASE_SCAN_PACKAGE)
    7. //扫描mapper
    8. @MapperScan (OpenPowerConstants.MAPPER_SCAN_PACKAGE)
    9. //这个注解用于启用 Spring 的缓存支持,可以通过在方法上标注 @Cacheable、@CachePut、@CacheEvict 等注解来实现缓存功能。
    10. @EnableCaching
    11. //这个注解用于启用 Spring 的异步方法调用支持,可以通过在方法上标注 @Async 注解来实现方法的异步执行。
    12. @EnableAsync
    13. public class OpenPowerApi
    14. {
    15. public static void main (String[] args)
    16. {
    17. SpringApplication.run (OpenPowerApi.class, args);
    18. }
    19. }

  3. 定义 Feign 接口:创建一个接口,用于声明要调用的远程服务的 API。你可以使用注解来定义接口,包括请求的 URL、请求方法、请求头等信息。
    1. java
    2. @FeignClient (name = "RemoteCaptchaService", url = "${cph-baseline-config.user-service.host}", path = "${cph-baseline-config.user-service.path}", configuration = BaseLineAdminReqInterceptor.class, fallbackFactory = RemoteCaptchaServiceFallbackFactory.class)
    3. public interface RemoteCaptchaService
    4. {
    5. /**
    6. * 生成图片验证码
    7. * 用于管理门户获取图片验证码
    8. *
    9. * @param getCaptchaReq 请求对象
    10. * @return 响应对象
    11. */
    12. @PostMapping ("/admin/v1/vcc/captcha")
    13. CaptchaResp getCaptcha (@RequestBody GetCaptchaReq getCaptchaReq);
    14. /**
    15. * 生成图片验证码图片
    16. * 用于管理门户获取图片验证码图片
    17. *
    18. * @param getCaptchaImgReq 请求对象
    19. * @return 响应对象
    20. */
    21. @PostMapping ("/admin/v1/vcc/captcha/image")
    22. CaptchaResp getCaptchaImg (@RequestBody GetCaptchaImgReq getCaptchaImgReq);
    23. /**
    24. * 刷新图片验证码图片
    25. * 此接口用于管理门户刷新图片验证码图片
    26. *
    27. * @param refreshCaptchaImgReq 请求对象
    28. * @return 响应对象
    29. */
    30. @PutMapping ("/admin/v1/vcc/captcha/image")
    31. CaptchaResp refreshCaptchaImg (@RequestBody RefreshCaptchaImgReq refreshCaptchaImgReq);
    32. }

    在这个例子中,RemoteServiceClient 是一个 Feign 接口,用于调用名为 remote-service 的远程服务的 /api/resource 路径

  4. 使用 Feign 接口:在你的代码中注入 Feign 接口,并调用其中定义的方法。
    1. @RestController
    2. @RequestMapping ("/user")
    3. @Slf4j
    4. @RequiredArgsConstructor
    5. public class CaptchaController
    6. {
    7. private final PCaptchaService pCaptchaService;
    8. /**
    9. * 获取生成验证码的key
    10. * @return
    11. */
    12. @PostMapping("/captcha/key")
    13. public ApiResult<PCaptchaKeyResp> key(){
    14. R<PCaptchaKeyResp> resp=pCaptchaService.getkey();
    15. return ApiResultUtil.build (resp.getResultCode (), resp.getResultMsg (), resp.getData ());
    16. }
    17. /**
    18. * 根据Key来获取验证码图片
    19. * @return
    20. */
    21. @PostMapping ("/captcha/image")
    22. public ApiResult<PCaptchaImageResp> captchaImage (@RequestBody @Validated CaptchaImageReq captchaImageReq)
    23. {
    24. R<PCaptchaImageResp> resp = pCaptchaService.getCaptchaImg (captchaImageReq);
    25. return ApiResultUtil.build (resp.getResultCode (), resp.getResultMsg (), resp.getData ());
    26. }
    27. /***
    28. * 刷新验证码
    29. * @param pRefreshCaptchaImgReq
    30. * @return
    31. */
    32. @PostMapping ("/captcha/refresh")
    33. public ApiResult<PCaptchaImageResp> refreshCaptcha (@Validated @RequestBody PRefreshCaptchaImgReq pRefreshCaptchaImgReq)
    34. {
    35. R<PCaptchaImageResp> resp = pCaptchaService.refreshCaptchaImg (pRefreshCaptchaImgReq);
    36. return ApiResultUtil.build (resp.getResultCode (), resp.getResultMsg (), resp.getData ());
    37. }
    38. }

    这样,你就可以在 CaptchaController类中注入PCaptchaService ,然后调用它的方法来从远程服务获取资源。

  5. 配置属性(可选):你可以在 application.properties 或 application.yml 文件中配置 Feign 相关的属性,例如超时时间、重试策略等。
    1. feign:
    2. client:
    3. config:
    4. default:
    5. connectTimeout: 5000
    6. readTimeout: 5000


总结

以上就是使用 OpenFeign 实现远程服务调用的基本步骤。通过定义 Feign 接口,并使用注解来声明服务调用的细节,可以使得代码更加清晰和简洁。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/1005760
推荐阅读
相关标签
  

闽ICP备14008679号