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