SSM工作原理

SSM工作原理

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。

SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

MyBatis
MyBatis是对jdbc的封装,它让数据库底层操作变的透明。MyBatis的操作都是围绕一个sqlSessionFactory实例展开的。MyBatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

执行流程

在这里插入图片描述
SSM是Sping+SpringMVC+MyBatis集成的框架。是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层

视图层:View层 → 表现层(springMVC):Controller层(Handler层):→ 业务层(Spring):Service层 → 持久层(Mybatis):Dao层(Mapper层)

  • View层与Controller层联系紧密;
  • Service层与Dao层代码设计可更加模块化,提高代码复用率,降低耦合性;

持久层:DAO层(mapper层)(属于mybatis模块)
DAO层:主要负责与数据库进行交互设计,用来处理数据的持久化工作。

DAO层的设计首先是设计DAO的接口,也就是项目中你看到的Dao包。

然后在Spring的xml配置文件中定义此接口的实现类,就可在其他模块中调用此接口来进行数据业务的处理,而不用关心接口的具体实现类是哪个类,这里往往用到的就是反射机制,DAO层的jdbc.properties数据源配置,以及有 关数据库连接的参数都在Spring的配置文件中进行配置。

有的项目里面Dao层,写成mapper,当成一个意思理解。

mapper层=dao层,现在用MyBatis逆向工程生成的mapper层,其实就是dao层。对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,而service层是针对我们controller,也就是针对我们使用者。service的impl是把mapper和service进行整合的文件。

业务层:Service层(属于Spring模块)
Service层:主要负责业务模块的逻辑应用设计。也就是项目中你看到的Service包。

Service层的设计首先是设计接口,再设计其实现的类。也就是项目中你看到的service+impl包。

接着再在Spring的xml配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。

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

Service层的业务实现,具体要调用到已定义的DAO层的接口。

Service层,存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,它有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库打交道的,他也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法。

控制层/表现层:Controller层(Handler层) (属于springMVC模块)
Controller层:主要负责具体的业务模块流程控制,也就是controller包。

Controller层通过要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的xml配置文件里面,针对具体的业务流程,会有不同的控制器。

controller层,控制器,导入service层,因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。

View层 (属于springMVC模块)
负责前台jsp页面的展示,此层需要与Controller层结合起来开发。

Jsp发送请求,controller接收请求,处理,返回,jsp回显数据。

model层=entity层。存放实体类,与数据库中的属性值基本保持一致。

SSM使用SpringMVC负责请求的转发和视图管理

Spring实现业务对象管理,MyBatis作为数据对象的持久化引擎;

数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中。

参考文章:
https://baike.baidu.com/item/SSM/18801167?fr=aladdin
http://www.zuidaima.com/blog/3761710606683136.htm

  • 9
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架是指Spring + SpringMVC + MyBatis的组合,它们分别负责不同的功能: 1. Spring是一个轻量级的容器,负责管理应用程序的对象生命周期和依赖关系。它通过IoC(控制反转)和DI(依赖注入)实现了对象的解耦和灵活配置。 2. SpringMVC是基于MVC(Model-View-Controller)模式的Web框架,负责处理用户请求、路由和数据绑定。它使用前端控制器(DispatcherServlet)来分发请求,并将请求映射到对应的控制器处理。 3. MyBatis是一个持久层框架,负责数据库访问和数据持久化。它提供了SQL映射文件和对象关系映射(ORM)功能,将Java对象与数据库表之间进行映射。 下面是SSM框架的工作原理图: ``` +-----------------+ | Dispatcher | +-----------+ | Servlet | -----> | Spring | +-----------------+ | Container| +-----------+ ^ | | +------------+ | Spring | | MVC | +------------+ ^ | | +------------+ | MyBatis | | ORM | +------------+ ^ | | +-------------+ | Database | +-------------+ ``` 当用户发送请求时,DispatcherServlet会接收到请求并将其转发给Spring MVC框架。Spring MVC根据配置文件中定义的请求映射规则,将请求分发给对应的控制器进行处理。控制器通过调用服务层(Service)获取数据,并将数据传递给视图层(View)进行展示。 在服务层中,MyBatis通过映射文件和对象关系映射将Java对象转换成数据库操作语言(如SQL),并通过数据库驱动与数据库交互,完成数据的读写操作。 最后,将处理结果返回给用户。整个过程中,Spring框架负责管理对象的创建、依赖注入和事务管理,Spring MVC负责处理用户请求和路由,MyBatis负责数据库操作和数据持久化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值