快速业务通道

使用Spring 2.5注释驱动的IoC功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
     <property name="officeNo" value="002"/>    </bean>    <bean id="car" class="com.baobaotao.Car" scope="singleton">      <property name="brand" value=" 红旗 CA72"/>      <property name="price" value="2000"/>    </bean> </beans>

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

清单 5. 测试类:AnnoIoCTest.java

import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AnnoIoCTest {    public static void main(String[] args) {      String[] locations = {"beans.xml"};      ApplicationContext ctx =      new ClassPathXmlApplicationContext(locations);      Boss boss = (Boss) ctx.getBean("boss");      System.out.println(boss);    } }

这说明 Spring 容器已经正确完成了 Bean 创建和装配的工作。

使用Spring 2.5注释驱动的IoC功能(3)

时间:2011-01-26 IBM 陈雄华

使用 @Autowired 注释

Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。来看一下使用 @Autowired 进行成员变量自动注入的代码:

清单 6. 使用 @Autowired 注释的 Boss.java

package com.baobaotao; import org.springframework.beans.factory.annotation.Autowired; public class Boss {    @Autowired    private Car car;    @Autowired    private Office office;    … }

Spring 通过一个 BeanPostProcessor 对 @Autowired 进行解析,所以要让 @Autowired 起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。

清单 7. 让 @Autowired 注释工作起来

<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">    <!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 -->    <bean class="org.springframework.beans.factory.annotation.      AutowiredAnnotationBeanPostProcessor"/>    <!-- 移除 boss Bean 的属性注入配置的信息 -->    <bean id="boss" class="com.baobaotao.Boss"/>    <bean id="office" class="com.baobaotao.Office">      <property name="officeNo" value="001"/>    </bean>    <bean id="car" class="com.baobaotao.Car" scope="singleton">      <property name="brand" value=" 红旗 CA72"/>      <property name="price" value="2000"/>    </bean> </beans>

这样,当 Spring 容器启动时,AutowiredAnnotationBeanPostProcessor 将扫描 Spring 容器

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号