SSM框架概念

SSM框架概述

SSM框架是spring、spring MVC 和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。

SSM框架组成部分

1)持久层:Dao层(mapper)层
作用:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。

  • Dao层首先设计的是接口,然后再Spring的配置文件中定义接口的实现类。
  • 然后可以在模块中进行接口的调用来进行数据业务的处理。(不在关心接口的实现类是哪个类)
  • 数据源的配置以及有关数据库连接的参数都在Spring的配置文件中进行配置。

2)业务层:Service层
作用:Service层主要负责业务模块的逻辑应用设计。

  • 先设计接口然后再设计实类,然后再在Spring的配置文件中配置其实现的关联。(业务逻辑层的实现具体要调用到自己已经定义好的Dao的接口上)这样就可以在应用中调用Service接口来进行业务处理。
  • 建立好Dao之后再建立service层,service层又要在controller层之下,因为既要调用Dao层的接口又要提供接口给controller层。每个模型都有一个service接口,每个接口分别封装各自的业务处理的方法。

3)表现层:Controller层(Handler层)
作用:负责具体的业务模块流程的控制。

  • 配置也同样是在Spring的配置文件里面进行,
  • 调用Service层提供的接口来控制业务流程。
  • 业务流程的不同会有不同的控制器,在具体的开发中可以将我们的流程进行抽象的归纳,设计出可以重复利用的子单元流程模块。

4)View层
作用:主要和控制层紧密结合,主要负责前台jsp页面的表示。

其他概念说明

POJO (Plain Ordinary Java Object, 简单Java对象)

实际就是普通JavaBeans,是为了避免和EJB(Enterprise Java Beans 企业级JavaBeans)混淆所创造的简称,也称为(Plain Old Java Object 又普通又老的对象)。POJO的内在含义是指:那些没有继承任何类、也没有实现任何接口,更没有被其它框架侵入的java对象。

它仅包含自身的属性以及自身属性的getter和setter方法,这意味者POJO可以方便的从一个框架迁移到另一个框架中,或者框架升级也会对代码毫无影响,因此而得到复用。

一般,当需要持久化对象时,人们喜欢将该对象放在名为xxxPOJO的目录中。当然,不建议这样命名。POJO实际上是包括BO/VO/PO/DO等一系列对象的总称。有的团队规定禁止命名成xxxPOJO。

DO (Domain Object, 领域对象)

领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。

PO (persistence object, 持久层对象)

PO是在ORM(对象关系映射)中与数据表的一条记录相匹配,自身属性与数据表字段一一对应。可以将数据表中的一条记录作为一个对象处理,并可以转化为其它对象。
面对不同的数据源时,比如文档型数据库,对象型数据库等时,顾名思义PO是DAO层为进行持久化操作而准备的对象。

  • 包含getter、setter方法。
  • 不包含业务逻辑与数据库的访问方法。因为数据库本身不包含业务逻辑。
  • PO平常不一定需要实现序列化,只是当采用分布式存储或者需要作为前端输出及远程调用使用时,应该实现序列化。

DAO (data access object, 数据访问对象)

包含对数据的访问,负责持久层的操作 。通常需要结合PO来访问数据库,主要用来封装对数据的访问,并不转化成其它对象。
在基于“事务脚本”的业务设计时,它包含业务逻辑。否则,一般只包含持久化的封装。

DTO (Data Transfer Object, 数据传输对象)

数据传输对象,是在应用网络层需要传输的对象,是一个为了减少方法调用次数而在进程间传输数据的对象。

在《阿里巴巴开发手册中》规定是Service 或 Manager 向外传输的对象。

某些人称这个为“值对象”,当然还是有稍许区别。值对象追求对象不可变,DTO的对象是可修改,可改变的。

VO (value object, 值对象)

Value Object和View Object的简写都是VO,可能容易弄混。View Object的含义是通常是Web向模板渲染引擎层传输的对象。《阿里巴巴开发手册》中建议把输出的显示层对象命名为VO。当然,也有人把这个对象命名为DTO作为传输。

1
2
3
4
5
6
//Controller层
public HttpResult list(@RequestBody XXParam param){
HttpResult vo=HttpResultUtils.convert(XXDTO);
return vo;
}
12345

由于很多页面需要额外数据,比如错误码、提示信息、分页信息等,查询的DTO之后需要再封装成View Object 显示层对象再显示出来

参考文献

SSM框架讲解(史上最详细的文章)

概念POJO、DTO、DAO、PO、BO、VO、QO、ENTITY详解

浅析DO、VO、DTO、PO的概念与区别

作者

Hyeee

发布于

2023-08-15

更新于

2023-08-15

许可协议