id
是 bean的唯一标识 一个bean,其id 值只能有一个 。整个IOC 容器id 值不允许重复,使用名称作为key。
name
一个bean的名称,可以存在多个,多个之间使用逗号分隔。不论bean有没有定义name属性,默认id都会当做name。
class
bean的具体的类型,包名和类名组成。
scope
bean的作用域:如果不写scope,则默认为单例
prototype :非单例,每次获取都会创建一个新的bean对象。
singleton : 单例,多次获取永远同一个bean, 默认值。
request : 一次请求,基于web项目的bean的作用域。
session : 一次会话,基于web项目的bean的作用域。
lazy-init
延迟初始化(懒加载),默认只要加载了配置文件。bean对象就会被初始化,lazy-init则是获取时才会初始化。只针对单例模式有效,非单例每次获取都会创建,没有延迟初始化的意义
depends-on
初始化时依赖的对象,当前对象初始化前需先初始化depends-on指定的对象
init-method
对象初始化后,调用的方法
destroy-method
对象销毁时,调用的方法
autowire
属性自动装配
byName 根据属性名称装配
byType 根据类型装配
autowire-candidate
是否允许作为自动装配的候选项
true 作为自动装配的候选项
false 不作为自动装配的候选项
primary
优先使用该bean,因为Spring需要支持使用类型查找对象,在一个大类型下,可能存在多个小类型。如果根据大类型装配属性时,不知道使用哪个具体的对象,则可以根据primary设置优先级。
案例代码
<bean id="user" class="com.domain.User" name="user1,user2"
init-method="init"
destroy-method="destroy"
scope="prototype"
lazy-init="false"
primary="true
></bean>