Spring 对占位符的处理
原文中文,约1800字,阅读约需5分钟。
📝
内容提要
该文介绍了 doProcessProperties 方法,使用 StringValueResolver 对象解析 BeanDefinition 属性,处理别名和嵌入值中的占位符,加入 embeddedValueResolvers 中,后续通过 resolveEmbeddedValue 方法解析注解中的占位符。
🎯
关键要点
-
doProcessProperties 方法用于解析 BeanDefinition 属性。
-
使用 StringValueResolver 对象创建 BeanDefinitionVisitor 对象。
-
通过 visitor.visitBeanDefinition(bd) 方法解析 BeanDefinition 的属性。
-
避免解析自身的 BeanDefinition,以防止在属性文件位置中出现无法解析的占位符。
-
解析别名中的占位符。
-
将 valueResolver 对象加入到 AbstractBeanFactory.embeddedValueResolvers 中。
-
注解中的占位符解析在后续的 resolveEmbeddedValue 方法中完成。
-
占位符的处理在 AutowiredAnnotationBeanPostProcessor.postProcessProperties 中进行。
🏷️