订单服务,使用feign调用服务

摘要:
userId=2&productId=2成功

通过feign实现订单中心(feign调用服务,在orderservice中调用product-server)

1、copy orderserver 为orderserverfeign

2、并使用idea打开

3、将服务增加个feign

在项目右键修改名称orderserver为orderserverfeign

4、打开端口为8661 yml中的端口修改为8661

5、修改各类名称refacter,并将application名字也修改正确

6、增加依赖:

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-openfeign</artifactId>

</dependency>

7、在Application类中增加注释

@EnableFeignClients

8、service中增加一个type为interface的类:ProductFeignService

增加注解:@FeignClient(name="product-server")

注意:name为服务定义的名称

@FeignClient(name="PRODUCT-SERVICE") /*调用服务的名称必须和原服务名称一致,需要在服务中查找*/ 并增加一个函数,

public interface ProductFeignService {

@GetMapping("/api/v1/product/findById") /*调用服务目录必须和原服务名称一致,需要在服务中查找*/

String fingById(@RequestParam(value = "id") int id);

/**

* http://192.168.136.128:8766/api/v1/product/findById?id=2

*/

}

9、增加包utils(用于解析josn字符串为json对象)

增加类JsonUtils

private static final ObjectMapper objectMapper =new ObjectMapper();

/**

* json字符串转换为Json格式

*/

public static JsonNode str2JsonNode(String str){

try {

return objectMapper.readTree(str);

} catch (IOException e)

{

return null;

}

}

10、impl实现中增加

@Autowired

private ProductFeignService productFeignService;

public ProductOrderFeign save(int userId, int productId) {

//获取商品详情TODO

String response=productFeignService.fingById(productId);

JsonNode jsonNode=JsonUtils.str2JsonNode(response);

ProductOrderFeign productOrderFeign =new ProductOrderFeign();

productOrderFeign.setCreateTime(new Date());

productOrderFeign.setUserId(userId);

productOrderFeign.setProductId(productId);

productOrderFeign.setTradeNo(UUID.randomUUID().toString());

productOrderFeign.setProductName(jsonNode.get("name").toString());

productOrderFeign.setPrice(Integer.parseInt(jsonNode.get("price").toString()));

return productOrderFeign;;

11、运行、访问http://192.168.136.128:8661/api/v1/orderfeign/save?userId=2&productId=2成功

免责声明:文章转载自《订单服务,使用feign调用服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇el-input的keyup事件的使用Egret 小游戏实战教程 跳一跳(搬运二)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

小程序真机上报错 for developer: some selectors are not allowed in component wxss , including tag name selectors, id selectors, and attribute selectors

在引用组件的组件和页面中使用后代选择器在某些极端情况下会产生意想不到的性能。如果是,请避免使用它们。子元素选择器只能在视图组件及其子节点之间使用,其他组件可能会导致意外情况。继承的样式(如字体和颜色)将从组件外部继承到组件内部。除了继承样式之外,app.wxss中的样式和组件所在页面的样式对于自定义组件无效。...

vue cli3.0 打包静态文件目录的配置

默认情况下,vuecli3.0打包生成的文件也会作为cli2.0在dist目录中生成,但css、js和img等静态文件不会像cli2.0那样放在静态文件夹中。您需要修改vue.config.js:module的几个配置变量。exports={publicPath:“dist”,//输出文件目录lintOnSave:false,//保存时eslint检查ass...

【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数

前言本博客首先介绍了模拟过程中使用的一些关键概念,然后介绍了有助于调试模拟脚本的常见技术:日志、命令行参数。Ns-3不是一个特殊的互联网模拟器,而是一个网络模拟器。在ns-3的仿真环境中,节点可以连接到表示数据交换通道的对象。这里,基本通信子网的抽象概念被称为信道,由C++中的channel类描述。在ns-3中,网络设备的抽象概念相当于硬件设备和软件驱动程序...

移动端媒体查询的一些尺寸参考

device-width是设备实际的宽度,不会随着屏幕的旋转而改变,因此并不适合开发响应式网站。比如iphone5s的屏幕分辨率宽为640,由于retina显示策略,当scale设置为1的时候,对应的media中取到的width为320,当scale设置为0.5的时候,width为640,而device-width始终是320。总结1.device-widt...

windows下mstsc 远程Ubuntu 教程

为远程桌面控制设置Ubuntu 16.04的缺点是重新启动系统需要使用监视器登录系统。首先,我们将Ubuntu远程控制设置为允许远程连接,进入系统-˃首选项-˃桌面共享,或直接搜索桌面共享。如图所示,选中此项,然后选中安全项,并设置远程密码。...

springMVC使用map接收入参 + mybatis使用map 传入查询参数

测试示例:控制器层使用映射来接收请求参数。从Debug中可以看到,请求中的参数值都是字符串形式。如果接收参数的映射直接传输到服务,mybatis将在接收参数时报告错误。因此,您需要首先对请求中的参数1packageorg.slsale进行预处理。测验23导入java.util。日期4导入java.util。HashMap;5导入java.ut...