项目代码组织结构
关注点分离
数据模型转换
- 在应用程序中,我们经常需要在不同层次间传递数据,比如从DAO层传到业务逻辑层,再到表示层。在这些不同层次间,数据的形态可能会有所不同,这就是数据模型转换的由来
- 需要进行数据模型转换最主要的原因是关注点分离
阿里分层领域模型规约参考
- DO(Data Object):此对象与数据库表结构一一对应,通过DAO层向上传输数据源对象。
- DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
- BO(Business Object):可以由 Service 层输出的封装业务逻辑的对象。
- Query:数据查询对象,各层接收上层的查询请求。注意超过2个参数的查询封装,禁止使用Map类来传输
- VO(View Object):显示层对象,通常是 Web 向模版渲染引擎层传输的对象。
简单的三层数据模型
- DO:对应数据库表结构
- BO:对应 Manager 层使用
- VO:对应 Controller 层使用
如何快速定义数据模型
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
</dependencies>
如何进行数据模型转换
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.1.3-jre</version>
<!-- or, for Android: -->
<version>32.1.3-android</version>
</dependency>