Spring配置bean属性
?
配置<bean>的属性?
属性名
作用
可选值
默认值
是否必选
id在当前ioc容器中必须唯一。
大多数情况下,容器将直接通过反射调用指定类的构造器来创建bean,在极少情况下,容器将调用类的静态工厂方法来创建bean实例,class属性将用来指定实际具有静态工厂方法的类
指定的是工厂方法
?
表示初始化bean之前强制一个或者多个bean被初始化。
?
在默认的情况下,applicationContext会在系统启动时实例化所有的singleton bean,但是可以通过lazy-init将bean设置为延迟实例化。
?
在实例化一个bean时,可能需要进行相关的初始化工作。使用init-method属性指定一个普通的初始化方法。
在bean被释放回收时,可以通过destroy-method属性来指定一个析构函数。
?
1. 直接使用value属性来表示
?
1. 直接使用value属性来表示 <property name="message" value="ddd" />2. 使用<value>子元素来表示 <property name="message"><value>World</value></property>3. 使用<ref>子元素指向另一个bean,这种方式将会在部署时验证所被引用的bean是否存在。而第二种在实际实例化时才会被发现。<property name="problem" ref="Problem" />或者:<property name="problem" /><ref name="Problem"/></property>4. 如果被引用的bean在同一个xml文件中,且bean名字就是bean id,那么可以使用local属性,此属性允许xml解析器在解析xml文件时来对引用的bean进行验证。<property name="problem" /><ref local="Problem"/></property>5. 集合元素<list>,<set>,<map>,<props>的应用<bean id="CollectionTest" ><property name="propertiesInfo"><props><prop key="key1">key1</prop><prop key="key2">key2</prop></props></property><property name="listInfo"><list><value>list1</value><value>list2</value></list></property><property name="mapInfo"><map><entry key=” map1”><value>map1 info</value></entry><entry><key><value>map2</value></key><value>map2 info</value></entry></map></property><property name="setInfo"><set><value>set1</value><value>set1</value></set></property></bean>6. <bean>继承子<bean>继承父<bean>的配置信息。如果子<bean>提供了父<bean>的配置信息,子<bean>的配置信息将覆盖父<bean>的配置信息。父<bean>一般声明为 abstract=”true”,表示这个<bean>不实例化为一个对应的bean。<bean id="abstractDao" abstract="true"><property name="sqlMapClient" ref="sqlMapClient" /></bean><bean id="userDao" parent="abstractDao" />?
?