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文件的抽象类

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

相关文章

  • Springboot无法注入service问题

    Springboot无法注入service问题

    这篇文章主要介绍了Springboot无法注入service的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Java的优先队列PriorityQueue原理及实例分析

    Java的优先队列PriorityQueue原理及实例分析

    这篇文章主要介绍了Java的优先队列PriorityQueue原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 深入解析堆排序的算法思想及Java代码的实现演示

    深入解析堆排序的算法思想及Java代码的实现演示

    堆排序基于二叉堆结构即完全二叉树,可利用最大堆和最小堆的组建方式来进行排序,这里就来深入解析堆排序的算法思想及Java代码的实现演示
    2016-06-06
  • SpringBoot操作spark处理hdfs文件的操作方法

    SpringBoot操作spark处理hdfs文件的操作方法

    本文介绍了如何使用Spring Boot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Service处理地铁数据、运行项目以及观察Spark和HDFS的状态,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • MyBatis-Plus updateById更新不了空字符串或null的解决方法

    MyBatis-Plus updateById更新不了空字符串或null的解决方法

    本文主要介绍了MyBatis-Plus updateById更新不了空字符串或null的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • JAVA各种加密与解密方式汇总

    JAVA各种加密与解密方式汇总

    在项目开发中,我们常需要用到加解密算法,本文主要介绍了JAVA各种加密与解密方式汇总,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • spring boot加载freemarker模板路径的方法

    spring boot加载freemarker模板路径的方法

    这篇文章主要介绍了spring boot加载freemarker模板路径的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 深入了解Java中Synchronized的各种使用方法

    深入了解Java中Synchronized的各种使用方法

    在Java当中synchronized关键字通常是用来标记一个方法或者代码块。本文将通过示例为大家详细介绍一下Synchronized的各种使用方法,需要的可以参考一下
    2022-08-08
  • SpringBoot使用自定义注解实现数据脱敏过程详细解析

    SpringBoot使用自定义注解实现数据脱敏过程详细解析

    这篇文章主要介绍了SpringBoot自定义注解之脱敏注解详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 深入理解Mybatis二级缓存

    深入理解Mybatis二级缓存

    与一级缓存相比,二级缓存范围更大了一些,可以被多个SqlSession所共用。下面通过本文带领大家一起学习mybatis二级缓存知识,一起看看吧
    2016-12-12

最新评论