Spring(七)--Spring配置元信息

本文深入探讨了Spring框架中Bean配置元信息的三种类型:GenericBeanDefinition、RootBeanDefinition和AnnotatedBeanDefinition。同时,解析了Bean属性元信息如PropertyValues,以及如何通过beanDefinition添加属性和设置source但并不影响实际Bean的属性。此外,文章还介绍了基于Java注解和外部化配置(如Properties和YAML)加载Spring容器配置元信息的方法,特别强调了PropertySource的优先级和如何自定义PropertySourceFactory来处理YAML配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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注解方式

image.png

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

image.png
image.png

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

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

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

image.png
YamlMapFactoryBean将YAML文件读取为Map,YamlPropertiesFactoryBean将YAML文件读取为Properties。 @PropertySource 支持自定义PropertySourceFactory(只需要实现PropertySourceFactory接口),使得YAML文件也能作为Property Source。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值