登录  /  注册
首页 > 常见问题 > 正文

ssm框架原理及流程是什么

晓曦&sea
发布: 2020-07-18 17:49:14
转载
20984人浏览过

ssm框架原理是:将spring、springmvc、mybatis整合在一起,作为数据源较简单的web项目的框架。流程是:handler mapping根据请求找到相应的handler,调用业务逻辑进行处理,然后进行视图解析即可。

ssm框架原理及流程是什么

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

SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。
SpringMVC框架运行流程

用户将请求发送至DispatcherServlet;
DispatcherServlet收到请求查询一个或多个HandlerMapping,找到处理该请求的Handler;
HandlerMapping根据请求找到相应的Handler,生成Handler对象返回给DispatcherServlet;
DispatcherServlet通过HandlerAdapter调用Handler;
Handler(Controller)调用业务逻辑(service)进行处理,处理完成返回ModelAndView;
HandlerAdapter将Handler处理结果ModelAndView返回给DispatcherServlet;
DispatcherServlet查询一个或多个ViewReslover(视图解析器),将ModelAndView传给指定的ViewReslover;
ViewReslover解析后返回具体View给DispatcherServlet;
DispatcherServlet对View进行渲染(将模型数据填充至视图中);
DispatcherServlet响应用户,View将结果显示在客户端。
流程大致如下图:

3.jpg

DispatcherServlet是整个Spring MVC的核心,它负责接收HTTP请求,组织协调Spring MVC的各个组成部分,其主要的工作有以下3项:
a. 截获符合特定格式的URL请求;
b. 初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久层的WebApplicationContext建立关联;
c. 初始化Spring MVC的各个组件,并配装到DispatcherServlet中。
Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IOC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。Spring的目的就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置,内部通过反射去动态的组装对象)。
IOC容器代表的就是org.springframework.beans包中的BeanFactory接口,其提供了IOC容器的基本功能;而org.springframework.context包下的ApplicationContext接口扩展了BeanFactory,还提供了与Spring AOP集成、国际化处理、事件传播及提供不同层次的context实现。
简单说,BeanFactory提供了IOC容器最基本功能,而ApplicationContext则增加了更多支持企业级功能支持。ApplicationContext完全继承BeanFactory,因而BeanFactory所具有的语义也适用于ApplicationContext。
Spring运行流程

加载配置文件,ApplicationContext接口。配置文件中的bean的信息被加载在HashMap中,一个bean通常包括,id,class,property等,bean的id对应HashMap中的key,HashMap中的value就是bean。
调用getBean方法,getBean是用来获取applicationContext.xml文件里bean的,参数是bean的id。一般情况都会强制转换成对应的业务层(接口)。
调用业务层(接口实现)的方法。
bean中的内容是怎么注入进去的?简单来讲,就是在实例化一个bean时,实际上就实例化了类,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。这样就回到了我们Java最原始的地方,对象.属性,对象.方法。
Mybatis
Mybatis是对jdbc的封装,它让数据库底层操作变的透明。Mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
Mybatis通过MapperProxy动态代理dao,也就是说,当执行自己写的dao里面的方法的时候,其实是对应的MapperProxy在代理。
Mybatis运行原理

加载配置文件
将SQL的配置信息加载成为一个个MappedStatement对象,包括了参数映射配置,执行的SQL语句,结果映射配置,存储在内存中。
SQL解析
当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map/JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入的参数对象MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。
SQL执行
将最终得到的SQL和参数拿到数据库执行,得到操作数据库的结果。
结果映射
将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap/JavaBean或者基本数据类型,并将最终的结果返回。

 

以上就是ssm框架原理及流程是什么的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号