Spring4-快速入门之在IOC容器中装配Bean( 三 )


6.定义集合属性
例如:为Boss类添加一个List类型的属性
public class Boss {private List favorites = new ArrayList();...}
配置如下:
吃饭睡觉打豆豆
注意:不仅仅是List类型的属性,数组类型(int[],[])的属性也可以通过这种方式进行注入
Map类型和Set类型的注入方式与List类似
吃饭睡觉打豆豆
除此之外,List,Set,Map也可以使用Bean作为注入的对象,可通过注入

类型的属性注入
与Map的区别在于,只支持key和value为字符串 。
value1value2
通过util命名空间配置集合类型的Bean
如果希望配置一个集合类型的Bean,而不是一个集合类型的属性,可以使用util命名空间进行配置,需要在配置文件中引入util命名空间的声明 。
xmlns:util="http://www.springframework.org/schema/util"http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsd
配置一个List类型的Bean,可以通过list-class属性显示的指定List的实现类
吃饭睡觉打豆豆
配置一个Set类型的Bean,可以通过set-class属性显示的指定Set的实现类
吃饭睡觉打豆豆
配置一个Map类型的Bean,可以通过map-class属性显示的指定Map的实现类

方法注入
1.方法注入
声明一个接口,并声明一个()方法,现在通过方法注入,使每次调用()方法都返回一个新的car Bean
public interface MagicBoss {public Car getCar();}
New棉花糖Black>
2.方法替换
Bean实现接口后,可以使用该接口的方法去替换目标Bean的方法
例如:
Boss1的()方法返回Car1
public class Boss1 {public Car getCar() {Car car = new Car();car.setBrand("Car1");return car;}}
Boss2实现了org..beans...接口,该接口返回Car2
public class Boss2 implements MethodReplacer{@Overridepublic Object reimplement(Object obj, Method method, Object[] args) throws Throwable {Car car = new Car();car.setBrand("Car2");return car;}}