1. DTO 产生背景
传统编程模式中,我们都是通过前台请求数据,发送到业务处理 service 层,然后由调用 dao 层返回 POJO 实体类 / 部分字段,然而这种原始的请求方式带来的缺点较多:
- 如果 Hacker 通过前端的 JSON 对象解析出你的表结构,然后就可结合表结构和请求命令模拟发送请求窃取你的个人信息或者造成数据库表结构的泄露;
- 后台处理僵硬:如果前台索要的信息不止局限于该 POJO 实体类,还有其他额外信息需要注入,这时候后台处理起来就比较麻烦了;
- 多次请求耗费一定的网络资源,减缓效率;
- 前后台耦合。
DTO 应运而生,数据传输对象 DTO (Data Transfer Object) 就是将数据封装成 JavaBean,听起来好像和以前习惯封装的 POJO 类无异,其中却有着些许差异,即按需阻止 DTO 对象,页面需要的字段才进行组织,避免传输整个表的字段。