关于模块化后代码问题

来源:5-9 项目改造成多模块

forevertsin3880189

2018-07-18

疑问代码如下:

import com.imooc.product.client.ProductClient;
@Service
public class OrderServiceImpl implements OrderService {
    @Autowired
    private ProductClient productClient;
    @Override
    public OrderDTO create(OrderDTO orderDTO) {
        //查询商品信息(调用商品服务)
        List<String> productIdList = orderDTO.getOrderDetailList().stream()
                .map(OrderDetail::getProductId)
                .collect(Collectors.toList());
        List<ProductInfoOutput> productInfoList = productClient.listForOrder(productIdList);
       //扣库存(调用商品服务)
        List<DecreaseStockInput> decreaseStockInputList = orderDTO.getOrderDetailList().stream()
                .map(e -> new DecreaseStockInput(e.getProductId(), e.getProductQuantity()))
                .collect(Collectors.toList());
        productClient.decreaseStock(decreaseStockInputList);

感觉上述代码只是引入ProductClient类,直接在本地使用,并未调用远端商品服务。

写回答

2回答

廖师兄

2018-07-21

项目引用jar包,就是把jar包里的代码变成了项目里的代码呀,至于是调用远端还是本地,由里面的代码决定。

0
1
forevertsin3880189
非常感谢!
2018-07-29
共1条回复

wirechen

2018-07-18

你在写productClient的时候不是用feign调用了productService吗?在order服务引入productclient就相当于在order项目中使用feign调用了product服务,也就是远程调用了

0
0

SpringCloud Finchley(M2+RELEASE+SR2)微服务实战

SpringCloud组件实现微服务,【已升级Finchley.Release】

5673 学习 · 2489 问题

查看课程