2)注入对象
1’ 让Spring容器在当前配置文件中找到相应的Bean,并调用set方法,注入该Bean。
name:属性的名称,setOb()
local=”BeanId”:要被注入的id或name。 id属性的值不能包含特定字符,如“/”,若想让名字带“/”,用name属性来代替。 2’ 采用搜索多个配置文件来注入
ref local:只在当前文档中查找被注入的id。 ref bean:会查找所有的配置文件。
3’ 将一个Bean的定义嵌套在另一个Bean中(可读性差)
被嵌套的Bean不能采用getBean()返回
例子代码:
xmlns=\xmlns:xsi=\
xsi:schemaLocation=\ http://www.springframework.org/schema/beans/spring-beans-2.0.xsd\
3)注入集合类型
(1) List
List中可以放入字符串,对象,List
要放置的多个对象,可以是字符串,VALUE;也可以是对象,REF;也可以是在List中再放个List嵌套。
特点:允许重复的元素。
(2) Set
Set中存放字符串,对象,集合,不允许重复无序
(3) Map
Map 有
(4) Properties
Properties有
10
5)开发应用
经常用于做产品集成,集成第三方的产品。
将可替换的工具或组件类,抽象出接口,然后结合IOC特性解耦合。
2、构造器方式装配(constructor注入)
如果Bean属性比较少,并且属性值必须要注入赋值才能使用,值不经常改变,则应该采用constructor注入,其他情况就要set方法注入。 3、比较set和构造注入方式 1)尽量多用set方式 因为set方式更加的灵活 2)在以下情况使用构造方式 (1)bean的属性不多 (2)要求bean的属性必须已经赋值 (3)属性一旦赋值,不在发生变化 五、复杂装配 1、工厂方式装配 1)静态工厂方式装配 (1)写静态工厂 public class CarFactory { private static String make=\ public static Car getCar(){ } Car car = new Car(); car.setMake(make); return car; 11 } (2)在配置文件中配置 2)实例工厂方式装配 (1)写实例工厂 public class CarFactory { private String make; public void setMake(String make) { } public Car getCar(){ } } Car car = new Car(); car.setMake(make); return car; this.make = make; (2)在配置文件中配置 2、自动装配(Autowring Properties) 装配方式:byName,byType,autodetect,constructor 自动装配,只对对象类型有效。 1) autowire=“byName”: 按照属性名称在配置文件中查找对应的bean 按照Bean的Id与属性的名称进行匹配 自动装配与手动装配可以结合使用,手动装配会覆盖自动装配。 someBean自动匹配时,会根据属性名作为id,在配置文件中查找。 2) autowire=“byType” 按照类型匹配,要注入的属性类型与配置文件中的Bean类型匹配的个数超过一个,会出错。 3)autowire=“constructor”: 先去匹配构造器中参数类型,后与配置文件中的Bean类型匹配。没有就空值,多于一个就报错。 12

