通过改造之后,感觉Controller层与Service层合并了,这样感觉不是很好啊?

来源:3-27 【技术改造】电商系统集成Eureka - 商品中心-3

youngledo

2020-04-08 17:10:57

原先的@Service标准的类变成了@RestController了,并且其业务实现还在,这不就是合并了吗?可不可以这样,原先的Service、ServiceImpl等不要动,另外再新增Controller的接口类(API)和Controller的实现类(Impl),然后再去调用Service,这样不仅没有合并了,而且还没有破坏MVC的模式啊。

写回答

1回答

Java架构师讲师团

2020-04-08

其实微服务里没有“controller”这个概念了,这里保留的controller是为了兼容以前的老代码。微服务上下游关系都直接面向服务本身,返回按照json格式,不用再封装视图层

0
hEO_ZKF
hp style="white-space:normal;">同问老师问题:


这个Service 在这个项目里改造,好像依赖性高吧,也有感觉不安全,如果 Service 是对外提供给微服务,那么内部调用也在使用,例如 Swagger Api 的RestController 这一层也在使用 Service,这似乎偶合性了,对外来说,并不安全吧, Service 里面写了内部自己私有的业务逻辑,而且还是接口约束实现,外部(其他团队)也能调用我自己内部需要的业务逻辑吗?还是说,以后都不使用Swagger 这一层Controller



@FeignClient("foodie-item-service")

@RequestMapping("item-api")

public interface ItemService {


  ?? 是否加入 @GetMapping 之类的注解供调用?

  public void 服务自内部调用使用(Map mapPrama){  ... }



}


h021-05-28
共3条回复

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程