什么是 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。
isLazy
表示一个 bean 是不是需要懒加载,原型 bean 的 isLazy 属性不起作用,
懒加载的单例 bean,会在第一次 getBean 的时候生成该 bean,
非懒加载的单例 bean 则会在 Spring 启动过程中直接生成好。
dependsOn
表示一个 bean 在创建之前所依赖的其他 bean,在一个 bean 创建之前,它所依赖的这些 bean 得先全部创建好。
primary
initMethodName