什么是BeanDefinition?
BeanDefinition表示Bean定义,spring根据BeanDefinition来创建Bean对象,BeanDefinition有很多的属性来描述Bean,BeanDefinition是Spring中的核心概念。
BeanDefinition中的重要属性:
(一):beanClass
表示Bean类型;如:UserService.class;orderService.class,Spring在创建Bean的过程中会根据此属性来实例化得到的对象。
(二):scope
表示bean的作用域;如:scope等于singleton,该bean是一个单例bean;scope等于prototype,该bean是一个原型bean。
(三):lsLazy
表示bean是不是需要懒加载,原型bena的isLazy属性不起作用;懒加载的单例bean,会在第一次getBean的时候生成bean;非懒加载的单例bean,则会在Spring启动过程中直接生成好。
(四):dependsOn
表示bean在创建之前所依赖的其他bean,在创建一个bean之前,他所依赖的这些bean必须全部创建好。
(五):primary
表示一个bean是主bean,在Spring中一个类型可以有多个bean对象,在进行依赖注入时,如果根据类型找到了多个bean,此时会判断这些bean中是否存在一个主bean,如果存在,则直接将这个bean注入给属性
(六):initMethodName
表示一个ban的初始化方法,一个bean的生命周期过程中有一个步骤叫初始化,Spring会在这个步骤中去调用bean的初始化方法,初始化方法由程序员自己控制,表示程序员可以自定义逻辑对bean进行加工
原文:https://www.cnblogs.com/cjx-0111/p/14633449.html