1. Spring 模块结构
-
Spring Framework 结构图如下 :
- 从图中可以看出,Core Container 处于框架的最底层,在其之上有 AOP, Data, Web 等模块
- 因此我们阅读源码当然从 Core Container 部分开始,即 IoC 容器
2. Spring IoC 部分特性介绍
- 本章介绍 IoC 部分特性,这些特性在后面的源码分析中会用到
2.1 alias
- alias 即别名,Spring 中允许我们使用 alias 标签起个别名
<bean id="hello" class="xyz.coolblog.service.Hello">
<property name="content" value="hello"/>
</bean>
<alias name="hello" alias="alias-hello"/>
<alias name="alias-hello" alias="double-alias-hello"/>
- 这里我们给 hello 这个 beanName 起了一个别名 alias-hello,然后又给别名 alias-hello 起了一个别名 double-alias-hello。我们可以通过这两个别名获取到 hello 这个 bean 实例,比如下面的测试代码:
public class ApplicationContextTest {
@Test
public void testAlias() {
String configLocation = "application-alias.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(configLocation);
System.out.println(" alias-hello -> " + applicationContext.getBean("alias-hello"));
System.out.println("double-alias-hello -> " + applicationContext.getBean("double-alias-hello"));
}
}