怎么从Spring的几个阶段理解其工作过程

技术怎么从Spring的几个阶段理解其工作过程这篇文章给大家介绍怎么从Spring的几个阶段理解其工作过程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Spring框架非常强大,想要彻底弄懂Spri

本文从几个阶段向您介绍如何理解Spring的工作过程。内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。

Spring框架非常强大,完全理解Spring非常困难。

为了理解Spring是如何工作的,让我们研究一下Spring是如何加载的。春天会经历几个阶段。

从Javaweb的角度,我们把Spring分成几个阶段进行分析,从而加深对Spring的理解。

Spring的运行大致可以分为三个阶段:配置阶段、初始化阶段和运行时阶段。

让我们通过下图来看看Spring的几个阶段。

怎么从Spring的几个阶段理解其工作过程

配置阶段

让我们以JavaWeb项目为例。创建Spring项目时,如果要启动项目,首先要做什么?必须先配置它。

首先,我们将找到web.xml文件,并将Spring容器和请求分发器的配置引入到web.xml中,因为web.xml是整个web项目的入口。

listener listener-class org . spring framework . web . context . context loaderlistener/listener context-param param-name contextconfiglocation/param-name param-value class path : spring . XML,class path : spring-my batis . XML/param-value/context-param servlet servlet-namesprinmvc/servlet-name servlet-class org . spring framework . web . servlet . dispatchervlet/servlet-class init-param-name

初始化阶段

夜还年轻,星星已经落了,爱情也落了。

配置完成后,项目启动时,web容器会自动调用servlet的初始化方法。ContextLoaderListener将从指定的配置文件中读取配置信息,初始化并加载待加载到Spring IOC容器中的bean,并对引入@ autowritten注释或通过配置文件声明依赖关系的bean进行依赖注入和自动组装。然后将初始化HandlerMapping,带有@Controller注释的bean将通过ResultMapping注释的值绑定到方法名,并执行URL映射。

@ controller @ request mapping('/info ')publicationenfocontroller {/* * *按信息类型查找公共信息*@paraminfoType信息类型* @ return */@ request mapping(' Find infobytype ')@ responsebodypublicatmapstring,ObjectselectByInfoType(StringinfoType){//.返回结果;}}

例如:

让我们看看上面的控制器类。首先,用@Controller和@ResultMapping('/info ')对该类进行注释。selectByInfoType()方法上有一个@ resultmapping(“/find infobytype”)注释。

因此,当Spring初始化时,注释扫描器将扫描该类(在注释的情况下),发现该类具有@ResultMapping(“/info”)注释,然后扫描该类下所有带有@ ResultMapping()注释的方法。下面的代码显示了selectByInfoType()方法将被映射到HandlerMapping。

handler mapping . put('/info/find infobytype ',' infocontroller . selectbyinfotype(StringinfoType)');

运行阶段

处理URL请求,通过DispatchServlet分发器从HandlerMapping中找到对应类的方法,利用反射机制将用户的请求分发到对应Controller的对应方法进行处理,然后将处理结果返回给用户。

string method=handler mapping . get('/info/find infobytype ');//找到对应的方法后,使用反射机制调用方法。在这里,我们用图解法帮助理解Spring的工作原理,但只是做一个粗略的分析。实际的实现过程要比这复杂得多。感兴趣的同学可以阅读源代码或者查阅资料了解更多。

如何从几个阶段理解Spring的工作过程,希望在这里分享。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/131265.html

(0)

相关推荐

  • adobe download manager 未响应(adobe download manager 停止工作)

    技术Adobe ColdFusion 任意命令执行漏洞的示例分析这篇文章将为大家详细讲解有关Adobe ColdFusion 任意命令执行漏洞的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文

    攻略 2021年12月22日
  • vuejs服务器安装教程学习(vue.js下载和引入的基本步骤)

    技术vue.js的安装方式有哪些这篇文章主要介绍了vue.js的安装方式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    攻略 2021年12月20日
  • Confluence怎么扩展内存

    技术Confluence怎么扩展内存这篇文章主要介绍了Confluence怎么扩展内存,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。背景:Confluen

    攻略 2021年11月17日
  • 钥匙忘屋里了怎么开锁,钥匙忘在屋里了在外面怎么打开

    技术钥匙忘屋里了怎么开锁,钥匙忘在屋里了在外面怎么打开锁芯先插里面的钥匙钥匙忘屋里了怎么开锁,外面再插钥匙转不动;先插外面的钥匙,里面插钥匙转不动。一般出门时,门里面不要在锁芯里插钥匙,插了钥匙就会出现你说的情况。如果屋

    生活 2021年10月22日
  • jsf编程简单方法(jsf入门)

    技术怎样分析JSF的中文问题怎样分析JSF的中文问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。开始学习JSF的时候有遇上中文问题,看了一

    攻略 2021年12月14日
  • JBuilder 6如何用Borland方式的Java集成开发环境

    技术JBuilder 6如何用Borland方式的Java集成开发环境JBuilder 6如何用Borland方式的Java集成开发环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇

    攻略 2021年12月2日