订单服务,使用feign调用服务
通过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调用服务的更多相关文章
- 使用Feign调用服务的问题
最近在搞微服务的东西,系统A提供了一个服务,定义方式: @RequestMapping(value = "/hasSuberList", method = RequestMetho ...
- Spring Cloud 使用Feign调用服务传递Header中的参数
1.使用Feign 调用其他微服务,尤其是在多级调用的同时,需要将一些共同的参数传递至下一个服务,如:token.比较方便的做法是放在请求头中,在Feign调用的同时自动将参数放到restTempla ...
- Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录
背景 :在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnectio ...
- spring cloud feign 调用服务注意问题
服务端 rest api @RequestMapping(value = "/phone") public ResponsePhone getPhone(@RequestParam ...
- 使用feign调用服务的时候注意的问题
服务端 rest api @RequestMapping(value = "/phone") public ResponsePhone getPhone(@RequestParam ...
- SpringCloud使用Feign调用服务时,@FeignClient注解无法使用
关于解决这个问题的理论根源传送门:https://blog.csdn.net/alinyua/article/details/80070890我在这里只提供解决方案 0. 结论和解决方案 Spring ...
- 使用springcloud的feign调用服务时出现的错误:关于实体转换成json错误的介绍
http://blog.csdn.net/java_huashan/article/details/46428971 原因:实体中没有添加无参的构造函数 fastjson的解释: http://www ...
- Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录(转)
https://blog.csdn.net/uotail/article/details/84673347
- Spring Cloud微服务系列文,服务调用框架Feign
之前博文的案例中,我们是通过RestTemplate来调用服务,而Feign框架则在此基础上做了一层封装,比如,可以通过注解等方式来绑定参数,或者以声明的方式来指定请求返回类型是JSON. 这种 ...
随机推荐
- 小程序 之wx.request和wx.showModal简单封装
一.request封装 request(url, data, successCallBack = function(data) {}, completeCallBack = function(data ...
- 为Python配置Vim编辑器(GUI/非GUI皆可)
原文地址:https://blog.csdn.net/alanzjl/article/details/49383943 Vim as a python IDE ** 最近一直在写Python,但一直没 ...
- ICEM-缺角正方体
原视频下载地址:https://yunpan.cn/cqKwGiMRiqN7I 访问密码 3377
- mkfs格式化分区(为分区写入文件系统)
mkfs 命令非常简单易用,不过是不能调整分区的默认参数的(比如块大小是 4096 Bytes),这些默认参数除非特殊清况,否则不需要调整.如果想要调整,就需要使用 mke2fs 命令重新格式化.命令 ...
- legend3---16、网站的安全性问题
legend3---16.网站的安全性问题 一.总结 一句话总结: 通过客户端传递参数的方式也是有些危险,需要注意 单纯的获取数据的方法还好,但是 修改数据库方法一定要同时做前后端验证 1.php的b ...
- Random Projection
Random Projection在k-means的应用 1. 随机投影 (Random Projection) 首先,这是一种降维方法.之前已经介绍过相对普遍的PCA的降维方法,这里介绍另一种降 ...
- SEQ!org.apache.hadoop.io.LongWritable
[uhadoop@10-13-109-236 subdir26]$ $HADOOP_HOME/bin/hadoop fs -cat /data/flumeEvents/FlumeData.155980 ...
- mysql数据库分库分表(Sharding)(转)
mysql数据库切分 前言 通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制.一旦数据库过于庞大,尤其是当写入过于频繁,非常难由一台主机支撑的时候,我们还是会面临到扩展瓶 ...
- Matrix学习
package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.ColorMatr ...
- Qt pri文件
pri文件就是一个简单的文件夹包含或者动态库调用路径等说明,在pro文件里include了pri文件,相当于把pri文件的内容直接复制到pro文件中