1. UI

  在典型的Spring Web层中,我们把协议接口这层也定义为UI的一部分,一般来说就是Controller实现的这部分功能。主要作用是从Web接口获取用户传过来的参数,然后发送给业务装饰层进行调用,获取业务装饰层的返回结果并以约定形式返回给浏览器之类。

  1. 业务装饰

  业务装饰层接受UI层的调用,并返回结果给UI层。

  业务装饰层通过调用业务层+存储层,实现具体的业务。

  为什么需要业务装饰层?由于UI上的功能,并非全部是业务,比如一些查询功能。这些功能放到哪个业务用例都不合适,所以让业务装饰层直接调用存储层实现。

  1. 业务

  业务层包括业务对象、业务用例。来实现具体的业务功能。业务层是纯粹的、不依赖任何其他层的。在Java程序中,就是纯粹的POJO,用来实现一组业务功能。业务层通过定义存储接口,并自己调用存储接口实现完整业务。

  业务层定义的存储接口,通过依赖倒转原则,由外部来实现。因此业务层和具体的存储是完全解耦的,可以随时替换。

  在Spring Web中,可以通过外部自行组装Bean,将业务用例的Service组装成Spring Bean,并将存储层的对象注入到业务的Service中。

  1. 存储

  这里的存储是广义上的,包括但不限于:数据库、文件、其他大对象存储服务、远程服务、消息队列等。根据业务接口需要实现比如存储、第三方业务(如短信)、异步调用(消息队列)、同步调用(REST、RPC)等。

posted on 2018-04-01 20:45  邓志国  阅读(341)  评论(0编辑  收藏  举报