id
id标签是bean的唯一标识,IoC容器中bean的id标签不能重复,否则报错。
name
bean的名称标识符,跟id一样不能重复,否则会报错。。
class
定义bean的类路径,只想classpath下类所在的位置。
factory-method
工厂方法属性,通过该属性可以调用工厂指定的静态方法创建bean。
<bean id="user2" class="test.Factory" factory-method="getUserStance"></bean>
factory-bean
生成bean的工厂对象,通过改属性实例化工厂并调用实例化后的工厂的方法创建bean。
<bean id="factory" class="test.Factory" lazy-init="default"></bean>
<bean id="user3" class="test.Factory" factory-bean="factory" factory-method="getUserStance2"></bean>
init-method
初始化方法,定义bean实例化后调用的初始化方法,bean实例化后调用构造方法后调用初始化方法。init-method指定的是一个无参的方法,否则会报错。
destory-method
销毁方法,定义bean销毁之前调用的销毁方法,AbstractApplicationContext容器关闭后,会调用销毁方法后再销毁bean。destory-method和init-method一样,指定的是一个无参的方法,否则会报错。
scope
scope属性表示bean的作用范围,scope有4个值:
singleton:表示整个IOC容器共享一个Bean,也就是说每次说每次通过getBean获取的bean都是同一个。
prototype:每次对该bean请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)时都会创建一个新的bean实例。
request:每次HTTP请求将会生成各自的bean实例
session:每次会话请求对应一个bean实例
singleton和prototype经常使用,request和session基本不使用。
autowired
autowire表示bean的自动装配,autowire的值有no,byType,byName
no:不自动装配
byType:根据类型自动装配
byName:根据属性名自动装配
lazy-init
<bean id="factory" class="test.Factory" lazy-init="default"></bean>
延迟初始化,当lazy-init值为true,只有使用getBean()获取bean时才将bean实例化。lazy-init默认值为false。