梦想还是要有的,万一忘了咋办?

0%

Web三层架构

SSH、SpringMvc、Controller|Service|Dao、三层架构、BLL、UIL、DAL …知道这些词是什么意思吗?SSH,全称struts+spring+hibernate JavaWeb较早时期的三大框架,没错它的确是框架,你知道他们各自的具体岗位职责吗?

三层架构

控制层

数据校验

  • 类型  
     userId 必须是 正整型、
  • 格式
     身份证号
     文件格式
  • 大小
     文件大小
     文本长度
  • 是否必须

权限校验

  • 功能权限
     普通客户是不允许操作跳过广告功能的
  • 数据权限
     客户A 修改客户B的头像 是不被允许的

请求分发

确定当前请求应当由谁来负责处理。

统一响应

将无论是 控制层、服务层 还是 数据层的返回信息进行统一包装成为用户可以看懂的信息。

服务层

前置条件

  • 是否有权限
  • 删除部门时 部门内部是否还有员工等信息

业务逻辑

  • 删除指定部门
  • 将新头像地址设置好
  • 将最新数据交给数据层保存起来

数据层

查询数据

仅仅是按照给定条件进行数据查询,不包含业务逻辑。

保存数据

不得包含任何业务逻辑,提供单一的、标准的 保存功能。

数据对象

各层之间进行通讯时会有数据交换,这里既可以定义每个层侧的数据对象,也可以采用全局统一的对象类型;优先保证:可读性、复用性。

消息对象

同数据对象。消息对象一般标识返回数据格式。考虑:可读性、复用性、消息有效性;另外:还有使用 exception 来作为不满足条件的消息对象的。

思考

  • to用户、to控制层、to服务层分别建立不同消息对象?还是 共用一套消息对象??
  • 目前数据对象大多都在使用数据层的pj对象,是否有必要分别建立数据对象呢?
  • 用异常来做消息对象好吗?
  • 如何才能优雅的 解决数据对象、消息对象的问题呢?