DTO 实现 service 和 controller 之间值传递的操作

 更新时间:2021年02月22日 11:46:00   作者:延迟满足  
这篇文章主要介绍了DTO 实现 service 和 controller 之间值传递的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

概念

DTO( Data Transfer Object):

数据传输对象,Service 或 Manager 向外传输的对象。

BO:business object 业务对象。主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个 PO,工作经历对应一个 PO,社会关系对应一个 PO。建立一个对应简历的 BO 对象处理简历,每个 BO 包含这些 PO。这样处理业务逻辑时,我们就可以针对 BO 去处理。

VO( View Object):

显示层对象,通常是 Web 向模板渲染引擎层传输的对象。

POJO( Plain Ordinary Java Object):

在阿里巴巴编程手册中, POJO 专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。

DTO 实例代码

/**
 * 封装执行后结果
 */
public class PersonInfoExecution {
	// 结果状态
	private int state;
	// 状态标识
	private String stateInfo;
	// 店铺数量
	private int count;
	// 操作的personInfo(增删改店铺的时候用)
	private PersonInfo personInfo;
	// 获取的personInfo列表(查询店铺列表的时候用)
	private List<PersonInfo> personInfoList;
	public PersonInfoExecution() {
	}
	// 失败的构造器
	public PersonInfoExecution(PersonInfoStateEnum stateEnum) {
		this.state = stateEnum.getState();
		this.stateInfo = stateEnum.getStateInfo();
	}
	// 成功的构造器
	public PersonInfoExecution(PersonInfoStateEnum stateEnum,
			PersonInfo personInfo) {
		this.state = stateEnum.getState();
		this.stateInfo = stateEnum.getStateInfo();
		this.personInfo = personInfo;
	}
	// 成功的构造器
	public PersonInfoExecution(PersonInfoStateEnum stateEnum,
			List<PersonInfo> personInfoList) {
		this.state = stateEnum.getState();
		this.stateInfo = stateEnum.getStateInfo();
		this.personInfoList = personInfoList;
	}
	
	//get set......
}

补充:springBoot框架中几个层(dto、dao、service、controller)之间的关系

可以这样理解:

controller层-----> service层(接口—>接口实现类) -----> dao层的.mapper文件 -----> 和mapper层里的.xml文件对应

Model层 是数据层:

TableName是对数据表实体的映射;

Criteria传输前台数据

DTO 传输类间数据

Mapper层 放置SQL查询XML文件

Dao层 相当于XML文件的抽象类

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • java返回前端实体类json数据时忽略某个属性方法

    java返回前端实体类json数据时忽略某个属性方法

    这篇文章主要给大家介绍了关于java返回前端实体类json数据时忽略某个属性的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • Java中的共享锁CountDownLatch及源码解析

    Java中的共享锁CountDownLatch及源码解析

    这篇文章主要介绍了Java中的共享锁CountDownLatch及源码解析,CountDownLatch是一种同步辅助工具,允许一个或多个线程等待,直到在其它线程中执行的一组操作完成;CountDownLatch使用指定的计数初始化,需要的朋友可以参考下
    2023-11-11
  • SpringCloud Gateway DispatcherHandler调用方法详细介绍

    SpringCloud Gateway DispatcherHandler调用方法详细介绍

    我们第一个关注的类就是DispatcherHandler,这个类提供的handle()方法,封装了我们之后所有的handlerMappings,这个DispatcherHandler有点想SpringMVC的DispatchServlet,里面也是封装了请求和对应的处理方法的关系
    2022-10-10
  • Java实现的朴素贝叶斯算法示例

    Java实现的朴素贝叶斯算法示例

    这篇文章主要介绍了Java实现的朴素贝叶斯算法,结合实例形式分析了基于java的朴素贝叶斯算法定义及样本数据训练操作相关使用技巧,需要的朋友可以参考下
    2018-06-06
  • Java和Redis实现热搜功能

    Java和Redis实现热搜功能

    这篇文章主要介绍了Java和Redis实现热搜功能,在存储和传输用户搜索数据时,考虑到数据的机密性和隐私保护,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 谈谈变量命名规范的重要性

    谈谈变量命名规范的重要性

    下面小编就为大家带来一篇谈谈变量命名规范的重要性。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 新建springboot项目时,entityManagerFactory报错的解决

    新建springboot项目时,entityManagerFactory报错的解决

    这篇文章主要介绍了新建springboot项目时,entityManagerFactory报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Spring中AOP注解@Aspect的使用详解

    Spring中AOP注解@Aspect的使用详解

    这篇文章主要介绍了Spring中AOP注解@Aspect的使用详解,AOP是种面向切面的编程思想,面向切面编程是将程序抽象成各个切面,将那些影响了多个类的公共行为抽取到一个可重用模块里,减少系统的重复代码,降低模块间的耦合度,增强代码的可操作性和可维护性,需要的朋友可以参考下
    2024-01-01
  • Java 获取泛型的类型实例详解

    Java 获取泛型的类型实例详解

    这篇文章主要介绍了Java 获取泛型的类型实现代码的相关资料,需要的朋友可以参考下
    2017-05-05
  • SpringSecurity+OAuth2.0 搭建认证中心和资源服务中心流程分析

    SpringSecurity+OAuth2.0 搭建认证中心和资源服务中心流程分析

    OAuth 2.0 主要用于在互联网上安全地委托授权,广泛应用于身份验证和授权场景,这篇文章介绍SpringSecurity+OAuth2.0 搭建认证中心和资源服务中心,感兴趣的朋友一起看看吧
    2024-01-01

最新评论