在 Spring 中 BeanDefinition 的几个重要的属性
- id:Bean 的唯一标识名
- class:定义类的全限定名(包名+类名)
- init-method:用来定义 Bean 的初始化方法,Bean 组装之后调用,必须是一个无参数的方法
- destory-method:用来定义 Bean 的销毁方法,在 BeanFactory 关闭时触发,同样也必须是一个无参构造方法,只能应用于 SingletonBean
- factory-method:定义创建 Bean 对象的工厂方法,用于下面的 factory-bean,表示这个 Bean 是通过工厂方法创建,此时,class 属性"失效"
- factory-bean:定义创建该 Bean 的工厂类,如果使用了 factory-bean,则 class 属性"失效"
- MultablePropertyValues:用于封装<property> 标签信息,其实类里面就有一个 List,List 里面包装的就是 PropertyValue 对象,PropertyValue 就是 name 和 value 属性,用于封装 <property> 标签的名称和值信息,当我们需要再某个 BeanDefinition 中修改某个类里面的属性时就可以使用该类。
- ConstructorArgumentValue:用来在 BeanDefinition 模版中指定使用哪个构造方法进行实例化 bean
示意图如下: