什么是BeanDefinition?
BeanDefinition是Spring框架中非常核心的概念,BeanDefinition是定义Bean的配置元信息接口,Spring根据BeanDefinition来定义Bean对象,简单说就是对Bean信息的定义
BeanDefinition中的常用属性
-
beanClass:表示Bean类型,未加载类的时候存放Bean的名字,加载类后存放Bean的class信息。 -
scope:表示Bean的作用域,一般值为单例或者原型。 -
lazyInit:表示Bean是否是懒加载。 -
initMethodName:Bean初始化需要执行的方法。 -
destroyMethodName:Bean销毁时要执行的方法。 -
factoryBeanName:创建当前Bean的工厂。
定义Bean的方式
- 通过xml配置
- 通过注解
- 通过AbstractApplicationContext中addBeanFactoryPostProcessor方法
BeanDefinition存放
?
BeanDefinition的常见读取器
-
AnnotatedBeanDefinitionReader:解析类上的注解,包含某些注解的时候(如:@Bean、@Component)会成为Bean。 -
XmlBeanDefinitionReader:可以解析xml文件中的标签。 -
ClassPathBeanDefinitionScanner:扫描包路径的读取器。
|