术语:
spring
是一个生态,包含spring xxx各种我们日常说的东西。通常我们老是说
“spring 如何如何”
可以理解为一种简称,我们日常为了简便经常把
spring framework
简称为
spring
。 但本文就不会再这么说了,以下本文称
spring framework
,以免歧义。
直接上结论:
spring framework
是一个 bean容器
。
spring framework
bean容器
如果要用最短的一句话来描述
spring framework
的本质,那么上面这句就是。
下面只是一些进一步的阐述。
- 它是
、spring mvc
等多种所谓“spring应用”的基础。spring boot
- 具体来说,spring项目(各种依赖于
的应用)启动时,会根据 xxxApplicationContext的类型,分别去从spring framework
、xml配置文件
、或者注解
等处去读取配置,最终根据配置,产生很多的WEB_INF路径下的配置文件
并维护起来,这也就是说它是bean
的原因bean容器
-
所谓的spring framework
,可以大致理解为最终维护在一个 Map<String,维护bean
> 里面的。 可以大致理解为 key就是BeanDefinetion
,value 是beanName
。 其中BeanDefinition
可以立即为是BeanDefinition
的一层封装,也就是提供了更多方法而已。就像我们开发中,如果有一个类的功能太少,不足以提供足够的功能,我们会再给它封装一层class。就是这个简单易懂的意思。Bean对象
- 然后,
在产生xxxContext的过程中,还会通过spring framework
等方法可以把上面提到的这个Map暴露出来,我们就可以控制这些bean的几乎任意行为。beanFactoryPostProcessor
- 另外,所谓
,如果扩展spring framework
的自由程度依然不满足的话,可以自己写一个beanFactoryPostProcessor
,继承xxxContext
里面的xxxContext,重写各个方法,那就可以在产生bean的各个节点进一步控制,理论上基本上更加为所欲为,可任意操作了。spring framework
以下上传一个我在小组里做技术分享时的一个自制PPT。
spring framework.pptx