基于 Annotation 配置 Bean Definition 的源码解读
本系列文章第一部分分析了 Spring 解析 XML 配置文件中 <bean /> 元素的源码,这是 Spring 最原始的一种配置方式,同时也使 XML 中的节点具有命名空间特性。参考 Spring 相关文档,如果有如下的配置方式: <context:component-scan base-package="com.colorcc.spring.sample" /> 则可知:其一,该元素采用了"http://www.springframework.org/schema/context" 命名空间的配置方式。其二,针对 "com.colorcc.spring.sample" 包里的每个对象,Spring 可能采用基于 Annotation 方式配置和解析对应的对象。说可能是因为还需要在相关 Java 代码中使用如 @Component 及其子 Annotation 注解后才可以。
基于 Annotation 的 Bean 解析入口
如上文的图 2 所示,其右下角最后一个 Loop 顺序图即为 Annotation 配置解析 Bean 的入口,因此其详细步骤可参考上文的图 2 的分析。 XML Context 命名空间 bean 元素解析由上文的清单 6 可知,如果采用"http://www.springframework.org/schema/context" 命名空间,则执行"delegate.parseCustomElement(ele)" 方法进行 Bean 元素解析,其顺序图如图 1 和图 2 所示。
图 1. 基于 Annotation 解析 Bean 的顺序图 – Part1
图 2. 基于 Annotation 解析 Bean 的顺序图 – Part2
时间: 2024-08-29 08:23:38