Spring的上下文命名空间如何工作?

Car*_*eon 4 java spring xml-namespaces post-processing applicationcontext

例如,如果我在application-context.xml中声明:

<context:annotation-config/>
Run Code Online (Sandbox Code Playgroud)

我从官方文件中读到:

在隐式注册后处理器包括AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor会,PersistenceAnnotationBeanPostProcessor,以及上述RequiredAnnotationBeanPostProcessor.

但我想知道Spring是如何工作的,我认为这个1-liner被转换为文档中提到的后处理器的几个bean定义.

但是,我的问题是,哪个Spring组件/类实现了"从1-liner到多个bean定义的转换"功能?

gka*_*mal 5

如果你想知道annotation-config标签在幕后做什么,请查看AnnotationConfigBeanDefinitionParser

如果您想了解有关用于定义此类标记的一般机制的更多信息,请查看 spring参考文档的这一部分.

您需要一个模式定义,一个NameSpaceHandler和一个BeanDefinitionParser