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模块,专门放置公用的类和工具类等
好处
- 访问地址修改后,只需要在接口中修改地址即可
- 返回值和形参列表是自己定义的,开发使用的时候,十分方便
- 不同的服务有不同的借口,分层比较明确