三层结构

三层结构目前仍然使用,我们可以把每个java应用分为三层:

  • web层,负责和各终端交互,注重灵活和安全
  • service层,注重业务逻辑表达能力
  • dao层,负责存储数据,注重稳定和数据一致性

web层的重点要素是:灵活和安全

(2019年5月4日 07:32:20)

  1. 灵活体现在前端有pc、h5、app、穿戴设备、智能设备、IoT等种类繁多的终端,它们的协议、传输方式、数据格式都可以不同。即便是相同的终端,前端版本的迭代和交互的体验优化,也使得接口变化频繁,既需要向前兼容,也需要提供更多的功能,重构的事情分分钟在发生。此为灵活性要求。

  2. 安全体现在web接口终究是暴露在互联网上,对数据的入参有严格限制,避免注入攻击;对数据的输出也有严格数据,避免泄露数据。

基于这2点要素,在使用spring mvc时,需要精确控制入参和出参,因此入参需要明确声明,一般会定义一个POJO来接收入参,对于出参可以定义POJO,也可以把数据放到一个map中输出。如果再参考swagger之类的文档需要,那就可以说入参和出参都要有POJO与之对应。同时再考虑到灵活性,那么意味着一个接口就需要定义两个POJO,一个出参一个入参。

在这种前提下,就可能有个问题,数目繁多的url接口需要定义很多POJO。不过这个问题也不算太大。

文档更新时间: 2020-07-27 13:10   作者:nick