image.png
3.setListeners
??清楚了 setInitializers()方法的作用后,再看 setListeners()方法就非常简单了,都是调用了getSpringFactoriesInstances方法,只是传入的类型不同 。也就是要获取的 META-INF/spring.factories文件中定义的不同信息罢了 。
image.png
??即加载定义在 META-INF/spring.factories文件中声明的所有的监听器,并将获取后的监听器存储在了 SpringApplication的 listeners属性中 。
image.png
??默认加载的监听器为:
image.png
4.mainApplicationClass
??最后我们来看下duduceMainApplicaitonClass()方法是如何反推导出main方法所在的Class对象的 。通过源码我们可以看到是通过 StackTrace来实现的 。
1StackTrace:2我们在学习函数调用时,都知道每个函数都拥有自己的栈空间 。3一个函数被调用时,就创建一个新的栈空间 。那么通过函数的嵌套调用最后就形成了一个函数调用堆栈
??StackTrace其实就是记录了程序方法执行的链路 。通过Debug方式可以更直观的来呈现 。
image.png
??那么相关的调用链路我们都可以获取到,剩下的就只需要获取每链路判断执行的方法名称是否是 main就可以了 。
image.png
??好了到此相关的4个核心步骤就给大家分析完了,希望对大家能有所帮助哦!
- 源码输出和解码输出哪个好 音频输出解码和源码哪个好
- 深度保洁怎么做才是深度保洁 什么叫开荒保洁和深度保洁
- 邪不压正剧情深度解析,电影《邪不压正》中,许晴饰演的唐凤仪选择跳城楼自杀,你觉得这样的剧情安排合理吗?
- 有深度有涵养的句子,有哪些有哲理有深度有内涵的好句子?
- 华为MateStation X深度体验 华为MateStation X怎么样
- 华为MateRS深度体验 华为maters现在还值得入手吗
- 华为 MateBook X pro 深度测评 华为matebook x pro怎么样
- 华为Mate 20 Pro深度评测 华为Mate 20 Pro手机怎么样
- 新能源汽车热泵空调系统深度报告 新能源汽车热泵空调行业专题报告总结
- 先进制造业与现代服务业深度融合的意义 推动服务业与制造业深度融合形成以什么为主的产业结构