之前学习SSM的时候没有分包与安全的概念,写项目传输的都是pojo类,参考了其他大佬的发现他们都是再次进行封装,只给前端必要的信息,于是我去找学长了解了一下相关知识,本文系统介绍一下VO、BO、DTO、POJO的异同与使用。
概念
VO(View Object):视图对象,用于展示层,用处是将某个指定页面的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,泛指展示层与服务层之间的数据传输对象。
DO(Domain Object):领域对象(实体对象),从现实世界中抽象出来的业务实体。
POJO(Plain Ordinary Java Object):简单Java对象,就是普通JavaBeans,不包含业务逻辑或持久逻辑,一个POJO持久化之后就是PO。
DO与POJO的区别可以看做,POJO指内存中的user对象,product对象等,而DO看做硬盘中的对应数据,既实现持久化。
作用
我们这里主要是讲述其在三层架构中的使用:
- 前端发起请求,请求中的数据接收为VO。
- 展示层将VO转化为服务层对应方法所需要的DTO,传递给服务层。
- 服务层再根据DTO构造或者重建一个DO,调用DO的业务方法完成具体业务。
- 服务层将DO转换为持久层对应的PO,调用持久层的持久化方法,PO为方法参数,完成持久化操作。
后言
这只是我个人通过查阅资料所总结的知识,其实这也可以看做是一种规范,我们学Java应该要尽量规范,避免项目逻辑混乱。如有错误,欢迎指正。