1.字面值
字面值:可用字符串表示的值,可以通过 <value> 元素标签或 value 属性进行注入。基本数据类型及其封装类、String 等类型都可以采取字面值注入的方式若字面值中包含特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起来。
2.引用其他的bean
组成应用程序的 Bean 经常需要相互协作以完成应用程序的功能. 要使 Bean 能够相互访问, 就必须在 Bean 配置文件中指定对 Bean 的引用。在 Bean 的配置文件中, 可以通过 <ref> 元素或 ref 属性为 Bean 的属性或构造器参数指定对 Bean 的引用。也可以在属性或构造器里包含 Bean 的声明, 这样的 Bean 称为内部 Bean。定义一个Persong的bean,里面有一个属性是car属性,这个属性其实汽车也是一个bean。
package com.wpl.spring.test;
public class Car {
private String brand;
private String factory;
private int price;
public Car(String brand, String factory, int price) {
super();
this.brand = brand;
this.factory = factory;
this.price = price;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getFactory() {
return factory;
}
public void setFactory(String factory) {
this.factory = factory;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
package com.wpl.spring.test;
public class Person {
private String name;
private String address;
private Car car;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
@Override
public String toString() {
return "Person [name=" + name + ", address=" + address + ", car=" + car + "]";
}
}
上面就是两个bean,一个是person一个是car,在person中包含car。
<bean id="car2" class="com.wpl.spring.test.Car">
<constructor-arg value="宝马" type="java.lang.String"></constructor-arg>
<constructor-arg value="长春" type="java.lang.String"></constructor-arg>
<constructor-arg value="50000" type="int"></constructor-arg>
</bean>
<bean id="person" class="com.wpl.spring.test.Person">
<property name="name" value="小明"></property>
<property name="address" value="杭州"></property>
<property name="car" ref="car2"></property>
</bean>
ref表示的是一个bean的id号,这样就可以引用其他的bean了。
3.内部bean
当 Bean 实例仅仅给一个特定的属性使用时, 可以将其声明为内部 Bean. 内部 Bean 声明直接包含在 <property> 或 <constructor-arg> 元素里, 不需要设置任何 id 或 name 属性
内部 Bean 不能使用在任何其他地方。
4.注入null值参数
可以使用专用的 <null/> 元素标签为 Bean 的字符串或其它对象类型的属性注入 null 值和 Struts、Hiberante 等框架一样,Spring 支持级联属性的配置。
5.集合属性
java.util.Map 通过 <map> 标签定义, <map> 标签里可以使用多个 <entry> 作为子标签. 每个条目包含一个键和一个值. 必须在 <key> 标签里定义键因为键和值的类型没有限制, 所以可以自由地为它们指定 <value>, <ref>, <bean> 或 <null> 元素. 可以将 Map 的键和值作为 <entry> 的属性定义: 简单常量使用 key 和 value 来定义; Bean 引用通过 key-ref 和 value-ref 属性定义使用 <props> 定义 java.util.Properties, 该标签使用多个 <prop> 作为子标签. 每个 <prop> 标签必须定义 key 属性.
6.使用p命名空间
为了简化 XML 文件的配置,越来越多的 XML 文件采用属性而非子元素配置信息。Spring 从 2.5 版本开始引入了一个新的 p 命名空间,可以通过 <bean> 元素属性的方式配置 Bean 的属性。使用 p 命名空间后,基于 XML 的配置方式将进一步简化。
上面有几部分讲的比较简单,有需要的话可以自己去找相关的材料去看看,很容易掌握的。