SpringBean的定义包含哪些内容

1.Spring Bean声明式配置内容

主要属性:class,scope,lazy-init,depends-on,name或id,condtructor-are,properties,init-method,destroy-method都在BeanDefinition对象中

BeanDefinition对象保存在一个map中,它是以Bean的唯一标识作为key,BeanDefinition对象作为value

Spring容器在创建Bean的时候就不需要再去读取和解析这些配置文件,只需要根据bean的唯一标识去BeanDefinitionMap中找到对应的BeanDefinition对象

2.BeanDefinition与配置文件的关系

--1.beanClass对应的配置是class:它主要是用来指向具体的Java类,Spring容器创建的bean就是根据这个java类的实例来创建的

--2.lazyinit对应的配置是lazy-init:用来指定bean实例是否延迟加载,默认为false,容器在启动的时候会创建bean的实例,如果设置为true只有在首次获取bean才会创建实例

--3.Dependson对应配置depends-on,:用来定义bean实例它的依赖关系,Spring容器可能存在其它依赖关系,我们需要去保证它所有依赖需要提前实例化,depends-on可以定义它的依赖顺序

--4.factoryBeanName对应的配置就是name,定义bean的唯一标识,没有定义就会Spring就会以类名首字母小写作为唯一标识

--5.condtructorArgumentValues对应的配置是condtructor-are,他其实也是一个数组,

可以参考表格关系

 

 

 

3.Spring如何解析配置文件

spring解析时候会调用一个BeanDefinitionReader的一个工具类,其中有一个方法叫loadBeanDefinitons()方法,这个方法是启动对配置文件的一个加载和解析

BeanDefinitionReader它主要作用是读取配置文件中这个内容,然后将其转换为BeanDefinition对象,BeanDefinitionReader有非常多的属性类,每种类型具体的解析过程有是不一样的,

比如xmlBeanDefinitionReader主要读取xml文件中并将其解析为BeanDefinition对象

propertiesBeanDefinitionReader它主要是用来读取属性文件Resource,property等这样的文件解析为BeanDefinition对象

groovyBeanDefinitionReader主要读取解析groovy语言定义的bean解析为BeanDefinition对象

 

posted @   开源遗迹  阅读(127)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示