从0开始搭建后台管理系统,这是No19。上一篇我们讲到了:MyBatis-Flex多数据源与自动映射策略。这一节,我们来谈谈最新的代码结构。
在前面的文章《创建系统模块,确定模块包结构》中,我们以传统的模式确定包结构,但未来扩展受限,于是经过深思熟虑,最后的包结构调整如下:

1、api
api包主要处理业务逻辑,内部含领域对象domain,domain下包含业务对象bo,视图对象vo;api定义的接口一方面是给web层的controller使用,另外一个是为了将来微服务扩展时便于其他服务RPC调用;api中的impl内则是api接口的实现。
2、entity
把entity独立成一个包,这里面的类与数据库结构一致,生成代码时直接覆盖即可。
3、mapper
数据库访问mapper,生成代码时直接覆盖。
4、service
这里的service层其实没有太多业务逻辑,生成代码可直接覆盖,因为复杂的业务逻辑其实已经抽离到api包中的impl实现。
5、web
web里面的controller类处理http接口。web层通过调用api中的功能实现业务逻辑处理。
6、展望
当前还是单体版,为了便于将来向微服务衍生,把包结构这样调整有好处。未来要调整为微服务,只需要把api中的bo、vo、接口抽离成独立的jar包,而api的实现留在原来的包即可。
LoveCTO

