作者:Crusoe

我们可以在Spring的配置文件中直接设置Bean的属性值。例如:你的sBean有一个“maxSize”属性,它表示每页显示数据的最大值,它有一个set方法。代码如下:

private int maxSize;
public void setMaxSize(int maxSize) {
this.maxSize = maxSize;
}

这样,你可以在Bean定义时设置这个属性的值:

<property name="maxSize"><value>20</value></property>
     
<bean id="userDao" class="com.dev.spring.simple.HibernateUserDao">

  
 
</bean>
<bean id="sessionFactory"

 …
</bean>

 在这个简单的例子中,使用<ref>元素引用了一个sessionFactory实例。在ref标签中,我们使用了一个“local”属性指定它所引用的Bean对象。除了local属性之外,还有一些其它的属性可以用来指定引用对象。下面列出<ref>元素的所有可用的指定方式:
 bean:可以在当前文件中查找依赖对象,也可以在应用上下文(ApplicationContext)中查找其它配置文件的对象。
local:只在当前文件中查找依赖对象。这个属性是一个XML IDREF,所以它指定的对象必须存在,否则它的验证检查会报错。
external:在其它文件中查找依赖对象,而不在当前文件中查找。
总的来说,<ref bean="..."/>和<ref local="..."/>大部分的时候可以通用。“bean”是最灵活的方式,它允许你在多个文件之间共享Bean。而“local”则提供了便利的XML验证。

复杂属性的定义也是允许的:
Spring的bean工厂不仅允许用String值和其他bean的引用作为bean组件的属性值,还支持更复杂的值,例如数组、java.util.List、java.util.Map和java.util.Properties。数组、set、list和map中的值不仅可以是String类型,也可以是其他bean的引用;map中的键、Properties的键和值都必须是String类型的;map中的值可以是set、list或者map类型  。
 例如:
Null:
<property name=“bar”><null/></property>
List和数组:
<property name=“bar”>
  
  
</property>
Map:
<property name=“bar”>
  
  
</property>