BeanDefinition是spring中对bean的定义,涵盖构造这个bean所需的必要参数。spring根据BeanDefinition来创建对象。
属性有:
1.beanClass —>表示一个bean的类型 如:User.class Student.class spring在创建bean时根据这个属性来实例化对象。
2.scope —>表示bean的作用域 例如 singleton就代表该bean是单例 prototype代表bean为原型bean
3.isLazy —>表示一个bean是否需要懒加载。原型bean的isLazy字段不起作用。懒加载的单例bean会在第一次getBean的时候生成该bean,
非懒加载的bean则在spring的启动过程中初始化好
4.dependsOn -->表示创建这个bean之前依赖的其它bean,这些bean在创建之前都要初始化好
5.primary -->表示一个bean是主bean,在spring中一个类型可以有多个bean对象,在创建时会判断这些对象中是否有主bean有的话会赋值给这
个属性
6.initMethodName -->表示一个bean的初始化方法,bean的生命周期中有一个过程叫初始化,spring在这个步骤中会调用bean的初始化方法,初始化逻辑是程序员自己控制的,表示程序员可以自定义bean的加工方式。
使用spring过程中常用的注解 @Component @Bean 以及标签 都会被解析成BeanDefinition对象