spring中 beandefinition类中的6大属性

发布时间 2023-09-19 11:02:28作者: 代碼小能手

什么是 BeanDefinition?

BeanDefinition 表示bean的定义,spring根据 beandefinition 用来创建bean对象,他有很多属性来描述bean。

1.beanClass :表示一个bean 的类型,比如UserService.class ,在创建bean 的过程中会根据此属性来实例化得到的对象。

2. scope :表示一个bean的作用域,比如单例 singleton , 原型bean :prototype

3. isLazy:表示是否懒加载,原型bean的islazy不起作用,懒加载的单例bean,会在第一次getBean的时候生产该bean,非懒加载的单例bean,则会在spring启动过程中直接生成好。

4.dependsOn:表示一个bean创建之前所依赖的其他bean,在bean创建之前,他所依赖的bean需要全部创建好。

5.primary:一个bean是主动bean ,在spring中一个类型学可以用多个bean,此时会判断这些bean中是否存在主bean,如果存在直接将bean注入给属性。

6.initMethodName: 表示一个bean的初始化方法,bean生命周期中有一个步骤初始化,spring会在初始化中去调用这个方法,这个方法由程序员自己去实现。

@bean @compont <bean/> 都会解析为 BeanDefinition