十一、Feign手动指定服务名称,tracelog,getpost请求,第三方对接token简易方案,全局异常处理类

目录

一、Feign手动指定服务名称

二、tracelog

三、get,post请求

四、第三方对接token简易方案

五、全局异常处理类


一、Feign手动指定服务名称

我们原本有一个crm服务,一个对外的crm的api接口。后面因为需求变动我们又需要做一个crm-saas,但是对外的crm的api接口还是原本的同一个。

那么就需要我们其他的服务在调用crm的api接口的时候,根据自身需求(比如租户)选择对应的crm或者crm-saas进入。

可是因为只有一个crm的api接口,如果直接接口调用,那么还是会一直进入到最开始的crm中,没办法进入到crm-saas中,这个问题怎么解决?

解决思路:根据当前租户,手动选择进入crm服务还是crm-saas服务。

FeignBuilderConfig :

package com.xp.common.feign;

import feign.Feign;
import 
在微服务架构中,Feign 是一种声明式的 HTTP 客户端,用于简化服务之间的通信。通过定义接口和注解,可以非常方便地发起 HTTP 请求。以下是一个使用 Feign 调用第三方 GET 请求的示例。 ### 示例:Feign Client 调用第三方 GET 接口 假设需要调用一个提供用户信息的第三方服务,其 URL 为 `https://api.example.com/users/{userId}`,返回的数据格式为 JSON。 #### 1. 添加 Feign 依赖(以 Maven 为例) 首先确保项目中已经引入了 Spring Cloud Starter OpenFeign 的依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> ``` #### 2. 启用 Feign Clients 在 Spring Boot 主上添加 `@EnableFeignClients` 注解: ```java @SpringBootApplication @EnableFeignClients public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 3. 定义 Feign Client 接口 创建一个接口来定义对第三方服务的调用: ```java import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @FeignClient(name = "user-service", url = "https://api.example.com") public interface UserServiceClient { @GetMapping("/users/{userId}") User getUserById(@PathVariable("userId") Long userId); } ``` - `@FeignClient` 指定了该客户端的目标服务名称(`name`)和基础 URL(`url`)。 - `@GetMapping` 用于映射 GET 请求指定路径。 - `User` 是预期的响应数据结构,应与第三方服务返回的 JSON 结构匹配。 #### 4. 在业务逻辑中使用 Feign Client 注入并调用定义好的 Feign Client: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserServiceClient userServiceClient; public User fetchUserById(Long userId) { return userServiceClient.getUserById(userId); } } ``` #### 5. 自定义配置(可选) 如果需要自定义 Feign 的行为,例如设置超时、日志级别等,可以通过配置实现: ```java import feign.Logger; import org.springframework.context.annotation.Bean; public class FeignConfig { @Bean Logger.Level feignLoggerLevel() { return Logger.Level.FULL; } } ``` 并在 `@FeignClient` 中引用该配置: ```java @FeignClient(name = "user-service", url = "https://api.example.com", configuration = FeignConfig.class) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹏哥哥啊Aaaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值