一、bean的内置属性  

  1. id属性:id为bean的唯一标识名,就是常说的beanName。它必须是合法的XMLID,在整个XML文档中唯一。
  2. name属性:用来为bean id创建一个或多个别名(这里是别名不是beanName),它可以是任意的字母符合,多个别名之间用逗号空格分开。如果没有定义bean的id,那么第一个别名就会被作为id;如果也没有定义name,那么自动生成一个id和一个别名(这时的别名为类的全类名且类名首子母小写)。
  3. class属性:用来定义类的全限定名(包名+类名)。只有子类Bean不用定义该属性。
  4. parent属性:子类Bean定义它所引用它的父类Bean。这时class属性失效。子类Bean会继承父类Bean的所有属性,子类Bean也可以覆盖父类Bean的属性。注意:子类Bean和父类Bean是同一个Java类。
  5. abstract属性:默认为”false”,用来定义Bean是否为抽象Bean。它表示这个Bean将不会被实例化,一般用于父类Bean,因为父类Bean主要是供子类Bean继承使用。
  6.  scope 属性:默认为singleton(单例)。如果设prototype(原型)状态,BeanFactory将为每次Bean请求创建一个新的Bean实例。
  7. lazy-init属性:用来定义这个Bean是否实现懒初始化。默认为“default” ,如果为“true”,它将在BeanFactory启动时初始化所有的SingletonBean。反之,如果为“false”,它只在Bean请求时才开始创建SingletonBean。
  8. autowire属性:它定义了Bean的自动装载方式。1、“no”:不使用自动装配功能。2、“byName”:通过Bean的属性名实现自动装配。3、“byType”:通过Bean的类型实现自动装配。4、“constructor”:类似于byType,但它是用于构造函数的参数的自动组装。5、“default”:默认值,自动装配。
  9. depends-on属性:这个Bean在初始化时依赖的对象,这个对象会在这个Bean初始化之前创建。
  10. init-method属性:用来定义Bean的初始化方法,它会在Bean组装之后调用。它必须是一个无参数的方法。
  11. destroy-method属性:用来定义Bean的销毁方法,它在BeanFactory关闭时调用。同样,它也必须是一个无参数的方法。它只能应用于singletonBean。
  12. factory-method属性:定义创建该Bean对象的工厂方法。它用于下面的“factory-bean”,表示这个Bean是通过工厂方法创建。此时,“class”属性失效。
  13. factory-bean属性:定义创建该Bean对象的工厂类。如果使用了“factory-bean”则“class”属性失效。

二、bean的子元素

1)meta:元数据,当需要使用里面的信息时可以通过key获取

2)lookup-method:获取器注入,是把一个方法声明为返回某种类型的bean但实际要返回的bean是在配置文件里面配置的

3)replaced-method:可以在运行时调用新的方法替换现有的方法,还能动态的更新原有方法的逻辑

4)constructor-arg:对bean自动寻找对应的构造函数,并在初始化的时候将设置的参数传入进去

5)property:基本数据类型赋值

6)qualifier:通过Qualifier指定注入bean的名称