[apolloconfig/apollo]想请问下:com.ctrip.framework.apollo.spring.property.SpringValueDefinitionProcessor#beanName2SpringValueDefinitions有什么用?什么时候会用到?

2024-06-25 940 views
0

想请问下,源码里面,在com.ctrip.framework.apollo.spring.property.SpringValueDefinitionProcessor#processPropertyValues这个方法里维护一个叫beanName2SpringValueDefinitions的map,如下图: 图像

想问下大佬,什么时候用这个地图?主要调试源码调试了半天,发现@Value注解的属性都是存到SpringValueRegistry里registry里,如下图: 图像

所以实在没明白什么时候用到前面那个beanName2SpringValueDefinitions?

在维护这个beanName2SpringValueDefinitions的入口方法里,看到这么一段注释,如下图 图像 ,但是,还是没有得到是为什么,求大佬指点下~

回答

7

beanName2SpringValueDefinitions您可以在引用和调试com.ctrip.framework.apollo.spring.XmlConfigPlaceholderTest的行中添加断点com.ctrip.framework.apollo.spring.JavaConfigPlaceholderTest

3

@nobodyiam 大佬您好,请问是触发这两个类里的具体测试方法能复现到这种使用到com.ctrip.framework.apollo.spring.property.SpringValueDefinitionProcessor#beanName2SpringValueDefinitions 情况吗?

XmlConfigPlaceholderTest里的方法:

图像

JavaConfigPlaceholderTest里的方法: 图像

那个~ 大佬能再简单描述一下哪些情况下会触发用到这个beanName2SpringValueDefinitions呢? 感激大佬~

6

只需运行任何测试就应该触发断点。