- Bean 配置元信息:通过媒介(如 XML、Proeprties 等),解析 BeanDefinition 。
- loC容器配置元信息:通过媒介(如 XML、Proeprties 等),控制 loC 容器行为比如注解驱动、AOP 等。
- 外部化配置:通过资源抽象(如 Proeprties、YAML等),控制 PropertySource Spring。
- Profile:通过外部化配置,提供条件分支流程。
Spring中的Profile功能其实早在Spring 3.1的版本就已经出来,它可以理解为我们在Spring容器中所定义的Bean的 逻辑组名称,只有当这些Profile被激活的时候,才会将Profile中所对应的Bean注册到Spring容器中。
举个更具体的例子,我们以前所定义的Bean,当Spring容器一启动的时候,就会一股脑的全部加载这些信息完成对Bean的创建;而使用了Profile之后,它会将Bean的定义进行更细粒度的划分,将这些定义的Bean划分为几个不同的组,当Spring容器加载配置信息的时候,首先查找激活的Profile,然后只会去加载被激活的组中所定义的Bean信息,而不被激活的Profile中所定义的Bean定义信息是不会加载用于创建Bean的。