怎么从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)

相关推荐

  • eclipse swing的使用教程详细(swingwork的工作模式)

    技术怎么分析SwingWorker与Swing程序这篇文章给大家介绍怎么分析SwingWorker与Swing程序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。某些人一拍脑袋的事,让我有机会跟Swi

    攻略 2021年12月24日
  • 任务调度(Schedule)

    技术任务调度(Schedule) 任务调度(Schedule)清华OJ——数据结构与算法实验(中国石油大学)Description
    A HPS cluster is equipped with a un

    礼包 2021年11月27日
  • 如何清洗,如何清洁饮水机才最干净

    技术如何清洗,如何清洁饮水机才最干净饮水机使用长了,就会有很多的污垢,容易产生细菌,那么如何清洗呢如何清洗?现在我来教给大家,希望能帮到您::第一步:断开饮水机的电源,把饮水机中残留的水放干净,一般饮水机后面都有放水口,

    生活 2021年10月28日
  • SQLServer中Tempdb空间异常增长及占用非常大该怎么办

    技术SQLServer中Tempdb空间异常增长及占用非常大该怎么办SQLServer中Tempdb空间异常增长及占用非常大该怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章

    攻略 2021年11月29日
  • 拔苗助长的道理,拔苗助长告诉我们什么道理

    技术拔苗助长的道理,拔苗助长告诉我们什么道理拔苗助长的实例 /147264.html 还有无数的事实与活生生的实例,没有必要再写下去了拔苗助长的道理。要说那个家长不盼着自己的儿女出人头地,成龙成凤。但毕竟成龙成凤的是少数

    生活 2021年10月29日
  • 一次基于windowsxp--SLmail服务的缓冲区溢出实践

    技术一次基于windowsxp--SLmail服务的缓冲区溢出实践 一次基于windows_xp--SLmail服务的缓冲区溢出实践一次基于windows_xp--SLmail服务的缓冲区溢出实践
    20

    礼包 2021年11月1日