本篇只是一个思考,笔者经验不足,希望各位能友好讨论。
场景描述
最近尝试着给公司的系统尝试进行微服务拆分。下图是原本打算的架构进行分割,但是hr里面出现了几个方法,需要获得user这个实体类。而按照之前的规划,user这个实体类放入了auth中。
解决方法有三个:
1.单独将user实体类放入common包中,如果这样,user实体类的增删改查方法再auth中,但是实体类却在common中,难免有些奇怪,后期维护的时候可能会找不到这个实体类。
2.将所有的entity都放入common包中。这样算然比较统一,但是对本系统进行分割,本来就是因为系统的业务比较独立,除了某些特殊情况外,实体类应该是不会有任何的共有。
3.观察了一下,hr这边虽然引用了user类,但实际上只是想获取user类中的邮箱字段,既然如此,就直接写个接口返回Map即可。
最后采用的是第三种解决办法,虽然说是彻底解耦了,但是只是调用一次接口就返回一个字符串,也不知道是否是最佳方案。