读书人

Spring Annotation(1)

发布时间: 2012-09-07 10:38:15 作者: rapoo

Spring Annotation(一)

Spring Annotation(一)基于注释(Annotation)的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,提供了完全基于注释配置 Bean、装配 Bean 的功能,您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置。本文通过实例详细讲述了 Spring 2.5 基于注释 IoC 功能的使用。<!----><!----><!---->

?

Car 拥有两个属性:


清单 2. Car.java

?

Boss 拥有 Office 和 Car 类型的两个属性:


清单 3. Boss.java

?

我们在 Spring 容器中将 Office 和 Car 声明为 Bean,并注入到 Boss Bean 中:下面是使用传统 XML 完成这个工作的配置文件 beans.xml:


清单 4. beans.xml 将以上三个类配置成 Bean

?

当我们运行以下代码时,控制台将正确打出 boss 的信息:


清单 5. 测试类:AnnoIoCTest.java

?

这样,当 Spring 容器启动时,AutowiredAnnotationBeanPostProcessor?将扫描 Spring 容器中所有 Bean,当发现 Bean 中拥有?@Autowired?注释时就找到和其匹配(默认按类型匹配)的 Bean,并注入到对应的地方中去。

按照上面的配置,Spring 将直接采用 Java 反射机制对 Boss 中的?car?和?office?这两个私有成员变量进行自动注入。所以对成员变量使用?@Autowired?后,您大可将它们的 setter 方法(setCar()?和?setOffice())从 Boss 中删除。

当然,您也可以通过?@Autowired?对方法或构造函数进行标注,来看下面的代码:


清单 8. 将 @Autowired 注释标注在 Setter 方法上

                package com.baobaotao;public class Boss {    private Car car;    private Office office;     @Autowired    public Boss(Car car ,Office office){        this.car = car;        this.office = office ;    }     …}

?

由于?Boss()?构造函数有两个入参,分别是?car?和?office@Autowired?将分别寻找和它们类型匹配的 Bean,将它们作为?Boss(Car car ,Office office)?的入参来创建?Boss?Bean。

读书人网 >编程

热点推荐