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