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

来源: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回答

廖师兄

2019-08-08

你的问题在于没搞懂为什么要用多模块,这集视频前半部分是理论部分,你是不是跳过了?再去看2遍。

为什么只写接口就能调用,这是因为加了@Feign注解,这就是feign帮我们做的事。

0
5
三又十二分之四
非常感谢!
2019-08-13
共5条回复

慕仙4585932

2019-08-08

兄弟,说明前面的课没认真看。问题二:多模块的划分主要是代码隔离解耦每一个模块可以看成一个子工程,如果有修改不会影响别的工程,符合设计原则的“单一职责”,每个模块承担一个职责,划分之后简单清晰明了。问题三: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
共1条回复

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

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

5672 学习 · 2489 问题

查看课程