FeignClient 不用注解 其他方式构建实例

在 Spring Cloud 中,@FeignClient 注解是用于创建 Feign 客户端的方式之一。不过,如果您不想使用注解,还有其他方式来构建 Feign 客户端的实例。

一种方式是使用 Feign 的编程式方式来创建客户端实例。以下是一个简单的示例:

  • 第一,确保您的项目中已经添加了相应的依赖,包括 feign-core 和其他相关的 Feign 依赖。

  • 创建一个接口,定义您要调用的远程服务的方法。例如,假设有一个名为 UserService 的远程服务,其中包含一个获取用户信息的方法:

public interface UserService {
    @RequestMapping(method = RequestMethod.GET, value = "/users/{id}")
    User getUserById(@PathVariable("id") String id);
}

  • 创建一个实现 Feign 客户端接口的类,并在其中编写具体的实现逻辑。这里可以使用 Feign 提供的构建器模式来创建客户端实例:

@Configuration
public class FeignClientConfig {
     @Bean
    FeignClientBuilder getFeignClientBuilder(ApplicationContext applicationContext){
        return new FeignClientBuilder(applicationContext);
    }

   @Bean
    UserService getUserService (FeignClientBuilder feignClientBuilder){
        // name  参数在有注册中心时可以按name找到服务进行调度
        FeignClientBuilder.Builder<UserService > serviceBuilder = feignClientBuilder.forType(UserService .class, "boot-user-server");
        return serviceBuilder
                    // url 可以直接配置请求服务的地址前缀: 配置后本身按名称找服务的方式就不生效
                    .url("https://localhost:9080")
                    .path("/user/api/")
                    .build();
    }


}

  • 在您的应用程序中,使用 @Autowired注解注入实例来调用远程服务的方法:

public class MyApplication {
    @Autowired
    UserService userService;

    public void test() {
        User user = userService.getUserById("123");
        // 处理返回的用户信息
    }
}

From ChatGPT 有改动

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
CAROL-由自的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容