SSH、SpringMvc、Controller|Service|Dao、三层架构、BLL、UIL、DAL …知道这些词是什么意思吗?SSH,全称struts+spring+hibernate JavaWeb较早时期的三大框架,没错它的确是框架,你知道他们各自的具体岗位职责吗?
控制层
数据校验
- 类型
userId 必须是 正整型、 - 格式
身份证号
文件格式 - 大小
文件大小
文本长度 - 是否必须
权限校验
- 功能权限
普通客户是不允许操作跳过广告功能的 - 数据权限
客户A 修改客户B的头像 是不被允许的
请求分发
确定当前请求应当由谁来负责处理。
统一响应
将无论是 控制层、服务层 还是 数据层的返回信息进行统一包装成为用户可以看懂的信息。
服务层
前置条件
- 是否有权限
- 删除部门时 部门内部是否还有员工等信息
业务逻辑
- 删除指定部门
- 将新头像地址设置好
- 将最新数据交给数据层保存起来
数据层
查询数据
仅仅是按照给定条件进行数据查询,不包含业务逻辑。
保存数据
不得包含任何业务逻辑,提供单一的、标准的 保存功能。
数据对象
各层之间进行通讯时会有数据交换,这里既可以定义每个层侧的数据对象,也可以采用全局统一的对象类型;优先保证:可读性、复用性。
消息对象
同数据对象。消息对象一般标识返回数据格式。考虑:可读性、复用性、消息有效性;另外:还有使用 exception 来作为不满足条件的消息对象的。
思考
- to用户、to控制层、to服务层分别建立不同消息对象?还是 共用一套消息对象??
- 目前数据对象大多都在使用数据层的pj对象,是否有必要分别建立数据对象呢?
- 用异常来做消息对象好吗?
- 如何才能优雅的 解决数据对象、消息对象的问题呢?