当前位置:首页 > 软件开发 > 正文

springmvc启动流程 简述springmvc框架执行流程

springmvc启动流程 简述springmvc框架执行流程

大家好,关于springmvc启动流程很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于简述springmvc框架执行流程的知识点,相信应该可以解决大家的...

大家好,关于springmvc启动流程很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于简述springmvc框架执行流程的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

springmvc的工作流程是什么

spring工作的流程

流程如下:

1、用户发起请求到前端控制器(DispatcherServlet),该控制器会过滤出哪些请求可以访问Servlet、哪些不能访问。就是url-pattern的作用,并且会加载springmvc.xml配置文件。

2、前端控制器会找到处理器映射器(HandlerMapping),通过HandlerMapping完成url到controller映射的组件,简单来说,就是将在springmvc.xml中配置的或者注解的url与对应的处理类找到并进行存储,用map<url,handler>这样的方式来存储。

3、HandlerMapping有了映射关系,并且找到url对应的处理器,HandlerMapping就会将其处理器(Handler)返回,在返回前,会加上很多拦截器。

4、DispatcherServlet拿到Handler后,找到HandlerAdapter(处理器适配器),通过它来访问处理器,并执行处理器。

5、执行处理器

6、处理器会返回一个ModelAndView对象给HandlerAdapter

7、通过HandlerAdapter将ModelAndView对象返回给前端控制器(DispatcherServlet)

8、前端控制器请求视图解析器(ViewResolver)去进行视图解析,根据逻辑视图名解析成真正的视图(jsp),其实就是将ModelAndView对象中存放视图的名称进行查找,找到对应的页面形成视图对象

9、返回视图对象到前端控制器。

10、视图渲染,就是将ModelAndView对象中的数据放到request域中,用来让页面加载数据的。

11、通过第8步,通过名称找到了对应的页面,通过第10步,request域中有了所需要的数据,那么就能够进行视图渲染了。最后将其返回即可。

MVC工作流程

SpringMVC工作流程描述:

1.用户向服务器发送请求,请求被Spring前端控制ServeltDispatcherServlet捕获;

2.DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;

3.DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter;

4.提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:HttpMessageConveter:将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。数据根式化:对请求消息进行数据格式化。如将字符串转换成格式化数字或格式化日期等。数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。

5.Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象;

6.根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet;

7.ViewResolver结合Model和View,来渲染视图;

8.将渲染结果返回给客户端。

springmvc中如何获取bean

ApplicationContextcontext=newClassPathXmlApplicationContext("classpath*:applicationContext.xml"); CustomerServicecustomerService=(CustomerService)context.getBean("customerService");

springboot和springmvc区别

springboot和springmvc区别:

springboot只是一个配置工具,整合工具,辅助工具.

springmvc是框架,项目中实际运行的代码

Spring框架就像一个家族,有众多衍生产品例如boot、security、jpa等等。但他们的基础都是Spring的ioc和aop,ioc提供了依赖注入的容器,aop解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。

SpringMVC提供了一种轻度耦合的方式来开发web应用。它是Spring的一个模块,是一个web框架。通过DispatcherServlet,ModelAndView和ViewResolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。

SpringBoot实现了自动配置,降低了项目搭建的复杂度。它主要是为了解决使用Spring框架需要进行大量的配置太麻烦的问题,所以它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson,JDBC,Mongo,Redis,Mail等等),SpringBoot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box)。

SpringBoot只是承载者,辅助你简化项目搭建过程的。如果承载的是WEB项目,使用SpringMVC作为MVC框架,那么工作流程和你上面描述的是完全一样的,因为这部分工作是SpringMVC做的而不是SpringBoot。

对使用者来说,换用SpringBoot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。

总结:

Spring最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个MVC框架(一些用Spring解耦的组件),用开发web应用(SpringMVC)。然后发现每次开发都写很多样板代码,为了简化工作流程,于是开发出了一些“懒人整合包”(starter),这套就是SpringBoot。

所以,用最简练的语言概括就是:

Spring是一个“引擎”;

SpringMVC是基于Spring的一个MVC框架;

SpringBoot是基于Spring4的条件注册的一套快速开发整合包。

spring和springmvc先学哪个

先学spring

spring只单单是一个中间层框架,我们主要利用其反射机制处理bean,利用其面向切面编程思想管理事物。但是springMVC功能就强大多了,属于MVC框架了,模型-视图-控制器,它都接管了,把原本属于struts的工作也干了。所以,当然先学spring,等对MVC模式有了解之后,在学springMVC。

springmvc启动流程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于简述springmvc框架执行流程、springmvc启动流程的信息别忘了在本站进行查找哦。

最新文章