Spring Bean配置元信息
- Bean配置元信息-BeanDefinition : 1. GenericBeanDefinition:通用型BeanDefinition。2.RootBeanDefinition: 无Parent的BeanDefinition或者合并后BeanDefinition。3.AnnotatedBeanDefinition: 注解标注的BeanDefinition。
Sping Bean属性元信息
- Bean属性元信息-PropertyValues,这个就是影响bean属性的。
- Bean属性上下文存储-beanDefinition.addAttribute(“name”, “11”),这个只是个beandefinition加了个属性,不会影响最后bean的属性。
- bean元信息元素-beanDefinition.setSource(“source1”),同样这个也只是beanDefinition的source属性,不会影响bean最后生成。
Spring容器配置元信息
基于注解装载SpringBean配置元信息
SpringBean配置元信息底层实现–Java注解方式

基于Java注解装载Spring IoC容器配置元信息


基于Properties资源装载外部化配置

需要注意的是,PropertySource是属性来源的意思,它可以有多个来源,比如System Properties,System Environment,Rsource properties(.properties配置文件),他们是有优先级顺序的。context.getEnvironment().getPropertySources();可以看到spirng容器里有多少个propertySource,以及优先级顺序,排在前面的优先级更高。于是,我们通过上面截图里Api编程的PropertySource构造属性源,加入到spring容器中。
基于YAML资源装载外部化配置

YamlMapFactoryBean将YAML文件读取为Map,YamlPropertiesFactoryBean将YAML文件读取为Properties。 @PropertySource 支持自定义PropertySourceFactory(只需要实现PropertySourceFactory接口),使得YAML文件也能作为Property Source。
本文深入探讨了Spring框架中Bean配置元信息的三种类型:GenericBeanDefinition、RootBeanDefinition和AnnotatedBeanDefinition。同时,解析了Bean属性元信息如PropertyValues,以及如何通过beanDefinition添加属性和设置source但并不影响实际Bean的属性。此外,文章还介绍了基于Java注解和外部化配置(如Properties和YAML)加载Spring容器配置元信息的方法,特别强调了PropertySource的优先级和如何自定义PropertySourceFactory来处理YAML配置。
7500

被折叠的 条评论
为什么被折叠?



