SSM框架整合以及运行流程

2,047 阅读5分钟

最近工作中开发的项目使用了Spring-springMVC-Mybatis框架进行开发,今天来总结写这段时间对SSM框架的理解。在对SSM框架整合前,先对框架的每层的作用以及它们之间的关系做一个简单的介绍。

一、SSM框架中各层级间的作用及关系

  • 表现层(springMVC):Controller层(Handler层)

  • 负责具体的业务模块流程的控制

  • Controller层通过要调用Service层的接口来控制业务流程,控制的

    配置也在Spring配置文件里面。

  • 业务层(Spring):Service层

  • Service层:负责业务模块的逻辑应用设计。

  • 首先设计其接口,然后再实现他的实现类。

  • 通过对Spring配置文件中配置其实现的关联,完成此步工作,我们

    就可以通过调用Service的接口来进行业务处理。

  • 最后通过调用DAO层已定义的接口,去实现Service具体的 实现类。

  • 持久层(Mybatis):Dao层(Mapper层)

  • Dao层:负责与数据库进行交互设计,用来处理数据的持久化工作。

  • DAO层的设计首先是设计DAO的接口,

  • 然后在Spring的配置文件中定义此接口的实现类,就可在其他模块中

    调用此接口来进行数据业务的处理,而不用关心接口的具体实现类是

    哪个类,这里用到的就是反射机制, DAO层的数据源配置,以及有

    关数据库连接的参数都在Spring的配置文件中进行配置。

  • 视图层:View层

  • 负责前台jsp页面的展示。

  • 此层需要与Controller层结合起来开发。

  • 各层间的联系:

  • 本来Controller层与View层是可以放在.jsp文件里一起开发的,但是为了降低代码的复杂度,提高其可维护性,将其分为了这两层,这也体现了MVC框架的特性,即结构清晰,耦合度低。

  • Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

    二、SSM框架说明

    2.1、Spring

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

    如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:582505643,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

    2.2、SpringMVC

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

    2.3、MyBatis

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

    三、三层架构运行流程


    4.SSM框架实现一个web程序主要使用到如下三个技术:

    1. Spring:用到注解和自动装配,就是Spring的两个精髓IOC(反向控制)和 AOP(面向切面编程)。

    2. SpringMVC:用到了MVC模型,将流程控制代码放到Controller层处理,将业务逻辑代码放到Service层处理。

    3. Mybatis:用到了与数据库打交道的层面,dao(mapper)层,放在所有的逻辑之后,处理与数据库的CRUD相关的操作。

    比如你开发项目的时候,需要完成一个功能模块:

    1. 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。

    2. 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进行的那些操作,比如 insert、selectAll、selectByKey、delete、update等。

    3. 写Mapper.java/Dao.java,将Mapper.xml中的操作按照id映射成Java函数。实际上就是Dao接口,二者选一即可。

    4. 写Service.java,为控制层提供服务,接受控制层的参数,完成相应的功能,并返回给控制层。

    5. 写Controller.java,连接页面请求和服务层,获取页面请求的参数,通过自动装配,映射不同的URL到相应的处理函数,并获取参数,对参数进行处理,之后传给服务层。

    6. 写JSP页面调用,请求哪些参数,需要获取什么数据。

    好了,到这里就结束了,基本上,SSM框架下web项目运行流程,各个层次之间的作用,代码定义和实现的东西基本上都说明了