SpringBoot核心机制六、系列总结

文章目录

  • 一、spring.factories机制总结
  • 二、整个系列的总结

--- 楼兰

一、spring.factories机制总结

​ 到这里,SpringBoot中的spring.factories功能机制就已经梳理得差不多了,还剩下几个用得不是很多的机制就没有总结。比如:

spring-boot.jar
# Logging Systems
org.springframework.boot.logging.LoggingSystemFactory=\
# Depends On Database Initialization Detectors
org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector=\
# DataSource initializer detectors
org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector

spring-boot-autoconfigure.jar
# Template availability providers
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider
# DataSource initializer detectors
org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector

​ 关于Spring和SpringBoot,基本已经是现在J2EE开发的标准了,整个框架体系浩如烟海,基本不可能去掌握其中的全貌。由这两个框架延伸出来的技术体系,基本涵盖了各个方面,要掌握技术全貌就更不可能了。可是随着整个互联网的技术越来越成熟,对于这些底层框架的要求也越来越高。大家都知道源码重要,但是如何去学习和理解源码,就不容易了。而对于SpringBoot这套框架,以spring.factories为核心来进行功能扩展的设计方式,人人都清楚,但是直到像这样进行一次梳理之后,才能真正对这个划时代的产品有个直观的理解和认识。

​ 并且,基于spring.factories文件为核心去理解SpringBoot的源码,也更加有了方向。例如对于FailureAnalyzer错误报告机制,其实实际开发中用得不是很多,所以网上一大堆的也只是简单的使用方法,但是如果想要去源码中真正理解他的工作机制,就不再需要从SpringBoot启动往下一一调试,碰运气似的去理解整个加载过程中的各种代码,祈祷能够从这些看不懂的代码中找到自己感兴趣的问题。这种方式太过硬核,说实话,也太难了。

​ 而以spring.factories文件为核心,只需要直接在SpringBoot源码中去搜索FailureAnalyzer.class,就能找到这个机制出现的所有地方,再由这些地方逐步往上溯源,寻找入口,同时往下溯源,寻找实现,这样就能很容易的将这整个机制串联起来。其实在梳理这几篇文章之前,我对SpringBoot的源码也不熟悉,很多机制根本就没用过,更别说了解他的源码了。但是以这个方式梳理一片之后,对于整个SpringBoot的工作机制的理解,就完全上了一个档次。而对于SpringBoot工作机制的理解深度,又会完完全全的影响到日常开发中解决问题的思路。很多觉得很麻烦的问题,瞬间感觉豁然开朗。同时,也希望能够帮助你找到这种感觉。

二、整个系列的总结

​ 这整个系列非常硬核,需要有SpringBoot的使用经验才能比较好的理解。一方面,梳理得其实不够深,很多非常麻烦的问题,比如@Import的核心机制,其实挖得还不够深。并且,SpringBoot的整个技术体系也还完全不止这些核心的东西,还有很多与其他框架的整合方式,以及相当多的周边工具,比如Maven编译工具,Gradle编译工具,devTools工具、JUnit测试支持等等非常非常多的东西。另一方面,每一个部分都尽量整理得简短,一是因为想偷懒,另一方面也是不想让文章读起来太晦涩。但是整体来说,还是比较满足我的预期的,至少我在整理过程中收货非常多。后面如果有时间,再来沿着这个方向继续整理吧。

​ 毕竟现在网上的SpringBoot教程非常非常多,但是要么就更偏向应用,学着学着掌握了一大堆使用技巧,但是知其然不知其所以然。要么就是有点深度,但是零散晦涩,读完就需要很大的勇气,更别说形成体系了。最后,如果对你有帮助,帮忙支持一下。多谢。

你可能感兴趣的:(SpringBoot,java,spring,spring-boot,核心机制)