请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

运行成功,但是有点想问的

师兄,这一章节最核心的工作,其实就是想把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帮我们做的事。

0 回复 有任何疑惑可以回复我~
  • 提问者 三又十二分之四 #1
    没跳~~~
    来回看了有三遍了?
    Feign这个还是没懂啊,Feign可以帮忙暴露接口,但他总不能自动补全接口里面的方法吧。比如/product/listForOrder这个接口里,他怎么知道我要调用productService.findlist方法?
    回复 有任何疑惑可以回复我~ 2019-08-09 00:02:17
  • 廖师兄 回复 提问者 三又十二分之四 #2
    每一个feign接口,都和Controller的方法对应的呀,实际上是请求了controller.
    /product/listForOrder, 有对应controller的方法
    回复 有任何疑惑可以回复我~ 2019-08-12 15:23:14
  • 提问者 三又十二分之四 回复 廖师兄 #3
    我当时看课程的时候,以为controller里面的这两个方法被剪切了,不要了。我去翻了源码,是还在的。 这我就理解了。
    另外把product-client打成jar包后,直接在order服务引入,order就可以直接注入productClient了,就不用再order里面再写fegin接口了。
    回复 有任何疑惑可以回复我~ 2019-08-12 15:30:00
慕仙4585932 2019-08-08 16:26:33

兄弟,说明前面的课没认真看。问题二:多模块的划分主要是代码隔离解耦每一个模块可以看成一个子工程,如果有修改不会影响别的工程,符合设计原则的“单一职责”,每个模块承担一个职责,划分之后简单清晰明了。问题三:server模块下的ProductController没有改变。问题四:product中client模块定义feignClient,由服务端自己维护暴露的接口;这样客户端无需自己再重新写一遍feignClient,只需要在客户端引入product-client的依赖;模块划分之后对客户端来说简化、可维护的东西变少了。

0 回复 有任何疑惑可以回复我~
  • 提问者 三又十二分之四 #1
    问题2  还是没理解。你指的修改,比如什么?
    问题3  server模块下的ProductController为什么没变?截图里面,@PostMapping("/listForOrder")
    @PostMapping("/decreaseStock")两个路径的方法都注释掉了啊
    问题4  是把product下的三个子工程打成三个jar包,然后再order里面不写Feign,直接pom引入product-client 的jar包,用注入productClient接口直接使用,是这个意思吗?
    回复 有任何疑惑可以回复我~ 2019-08-08 17:16:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信