Spring Cloud将服务模块化,实现了编码解耦,各个模块只能访问该服务下的数据库,但最后都需要将数据合并,发给前端,这时候就需要用到远程调用。
一、RestTemplate注解开发
1、第一步,注册RestTemplate对象
2、第二步,注入bean,调用方法。
GET、POST、DELETE、PUT、四种请求方式都有,这里以GET为例。
拼接URL路径,传入方法参数。
3、重启服务,测试
红框内的user对象就是我们通过远用获得的。
当然,缺点也是显而易见的,就是硬编码问题,因为它的url路径是手动拼接的,一旦路径有所变动,对于后期的维护都是极其不便的。
二、客户端Feign
1、导入依赖
2、在调用者服务的启动类上添加@EnableFeignClients注解
3、声明Feign接口,封装所有对目标接口发起的远程调用
“userservice”是服务名,通过注册服务配置,相当于原路径中的“localhost:8080”,这里将其封装以后,未来地址或是端口的变动都不会影响该远程调用工作。
4、装配bean,调用方法
5、运行测试
有效解决了硬编码问题,当然,Feign还有更多的其他功能,关于配置服务以及性能优化。