spring Cloud 整合openFeign 和 consul

整合consul

启动consul
consul agent -dev
consul地址
maven 配置
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
启动类注解
@EnableDiscoveryClient//consul
@EnableFeignClients//openfeign

 整合openFeign

接口定制
@FeignClient("orders")//服务名称
public interface OrderClient {//接口名称,用于注入,建议分类
    
    //要求请求地址,形参列表,返回值一样
    @GetMapping("/get")
    String getOrder();
    
}
接口使用
@RestController
public class UserController {

    @Resource
    private OrderClient orderClient;

    @GetMapping("/get")
    public String get(){
        return orderClient.getOrder();
    }
}
参数传递

传递参数的时候,必须加上SpringMvc的注解,我们在开发的时候也要养成这样的好习惯,给每个参数加上注解,这样我们看的明白,反射解析的时候也会稍微快一点

参数回传

普通的参数可以直接返回,如果是map封装的复杂集合,要自己利用json序列化返回,Java对json转map的支持非常差。

实际项目中,有comment模块,专门放置公用的类和工具类等

好处
  1. 访问地址修改后,只需要在接口中修改地址即可
  2. 返回值和形参列表是自己定义的,开发使用的时候,十分方便
  3. 不同的服务有不同的借口,分层比较明确
经验分享 程序员 微信小程序 职场和发展