运行成功,但是有点想问的
来源:5-9 项目改造成多模块

三又十二分之四
2019-08-08
师兄,这一章节最核心的工作,其实就是想把order里面的feign定义写到product中来对吧。
1、为了不对外暴露信息用ProductInfoOutput替换了ProductInfo类。
json有个 @JsonIgnore注解,直接添加在不想返回给前端的属性上比如这里的创建和更新时间,是不是就不用新建ProductInfoOutput了。
2、感觉好像不用建多模块,直接在原工程加上ProductInfoOutput和DecreaseStockInput类,和Feign就好了。如果是后面什么地方需要,就当我没问? ,我怕忘了,先问出来
3、我最不理解的地方,server模块下的ProductController的@PostMapping("/listForOrder")
@PostMapping("/decreaseStock")
都已经被注释掉了
写到了client模块下
但是,这成了一个接口,里面没有方法体了,没有调用productService的findList和decreaseStock方法是怎么实现功能的啊?
4、另外还有一点,order服务里面还是自己写Feign,order还是要知道product的feign接口名字啊,感觉没区别~~~
2回答
-
你的问题在于没搞懂为什么要用多模块,这集视频前半部分是理论部分,你是不是跳过了?再去看2遍。
为什么只写接口就能调用,这是因为加了@Feign注解,这就是feign帮我们做的事。
052019-08-13 -
慕仙4585932
2019-08-08
兄弟,说明前面的课没认真看。问题二:多模块的划分主要是代码隔离解耦每一个模块可以看成一个子工程,如果有修改不会影响别的工程,符合设计原则的“单一职责”,每个模块承担一个职责,划分之后简单清晰明了。问题三:server模块下的ProductController没有改变。问题四:product中client模块定义feignClient,由服务端自己维护暴露的接口;这样客户端无需自己再重新写一遍feignClient,只需要在客户端引入product-client的依赖;模块划分之后对客户端来说简化、可维护的东西变少了。
012019-08-08
SpringCloud Finchley(M2+RELEASE+SR2)微服务实战
5672 学习 · 2489 问题
相似问题