`
luowei31
  • 浏览: 78318 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Spring2.5的Autowired实现注释型的IOC

阅读更多

Java代码  收藏代码
  1. 使用Spring2.5的Autowired实现注释型的IOC  
  2. 阅读(31) 评论(0) 发表时间:20090116日 11:57   
  3. 本文地址:http://qzone.qq.com/blog/55357655-1232078233   
  4.   
  5. 本文标签: Autowired context IOC xml beans  
  6.    
  7.    
  8.   使用Spring2.5的新特性——Autowired可以实现快速的自动注入,而无需在xml文档里面添加bean的声明,大大减少了xml文档的维护。(偶喜欢这个功能,因为偶对xml不感冒)。       以下是一个例子:  
  9. 先编写接口Man:  
  10.        public interface Man {  
  11.            public String sayHello();  
  12. }  
  13. 然后写Man的实现类Chinese和American:  
  14.        @Service  
  15. public class Chinese implements Man{  
  16.     public String sayHello() {  
  17.         return "I am Chinese!";  
  18.     }  
  19. }  
  20.   
  21.        @Service  
  22. public class American implements Man{  
  23.     public String sayHello() {  
  24.         return "I am American!";  
  25.     }  
  26. }  
  27.   
  28. @Service注释表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean,例如Chinese实例化为chinese,American实例化为american,如果需要自己改名字则:@Service("你自己改的bean名")。  
  29.   
  30. beans.xml  
  31. <?xml version="1.0" encoding="UTF-8"?>  
  32. <beans xmlns="http://www.springframework.org/schema/beans"  
  33.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  34.         xmlns:context="http://www.springframework.org/schema/context"  
  35.         xsi:schemaLocation="http://www.springframework.org/schema/beans   
  36.            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  37.            http://www.springframework.org/schema/context  
  38.            http://www.springframework.org/schema/context/spring-context-2.5.xsd">  
  39.       <context:annotation-config/>  
  40.       <context:component-scan base-package="testspring.main"/>  
  41. </beans>  
  42. 在spring的配置文件里面只需要加上<context:annotation-config/>和<context:component-scan base-package="需要实现注入的类所在包"/>,可以使用base-package="*"表示全部的类。  
  43.   
  44. 编写主类测试:  
  45. @Service  
  46. public class Main {  
  47.     @Autowired  
  48.     @Qualifier("chinese")  
  49.     private Man man;  
  50.   
  51.     public static void main(String[] args) {  
  52.         // TODO code application logic here  
  53.         ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");  
  54.         Main main = (Main) ctx.getBean("main");  
  55.         System.out.println(main.getMan().sayHello());  
  56.     }  
  57.   
  58.     public Man getMan() {  
  59.         return man;  
  60.     }  
  61. }  
  62.   
  63. 在Man接口前面标上@Autowired@Qualifier注释使得Man接口可以被容器注入,当Man接口存在两个实现类的时候必须指定其中一个来注入,使用实现类首字母小写的字符串来注入。否则可以省略,只写@Autowired   
  64.   
  65. **********************  
  66. 使用 Spring 2.5 注释驱动的 IoC 功能  
  67. 发表于08-03-04 20:38 | 阅读 1285 | 评分 (暂无)   
  68. 概述  
  69.   
  70. 注释配置相对于 XML 配置具有很多的优势:  
  71.   
  72. 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。   
  73. 注释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和 Java 代码放在一起,有助于增强程序的内聚性。而采用独立的 XML 配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。   
  74. 因此在很多情况下,注释配置比 XML 配置更受欢迎,注释配置有进一步流行的趋势。Spring 2.5 的一大增强就是引入了很多注释类,现在您已经可以使用注释配置完成大部分 XML 配置的功能。在这篇文章里,我们将向您讲述使用注释进行 Bean 定义和依赖注入的内容。  
  75.   
  76.   
  77.   
  78.    
  79.   
  80.   
  81.  回页首   
  82.    
  83.   
  84.   
  85.   
  86. 原来我们是怎么做的  
  87.   
  88. 在使用注释配置之前,先来回顾一下传统上是如何配置 Bean 并完成 Bean 之间依赖关系的建立。下面是 3 个类,它们分别是 Office、Car 和 Boss,这 3 个类需要在 Spring 容器中配置为 Bean:  
  89.   
  90. Office 仅有一个属性:  
  91.   
  92.   
  93. 清单 1. Office.java  
  94.                   
  95. package com.baobaotao;  
  96. public class Office {  
  97.     private String officeNo =”001”;  
  98.   
  99.     //省略 get/setter  
  100.   
  101.     @Override  
  102.     public String toString() {  
  103.         return "officeNo:" + officeNo;  
  104.     }  
  105. }  
  106.    
  107.   
  108.   
  109. Car 拥有两个属性:  
  110.   
  111.   
  112. 清单 2. Car.java  
  113.                   
  114. package com.baobaotao;  
  115.   
  116. public class Car {  
  117.     private String brand;  
  118.     private double price;  
  119.   
  120.     // 省略 get/setter  
  121.   
  122.     @Override  
  123.     public String toString() {  
  124.         return "brand:" + brand + "," + "price:" + price;  
  125.     }  
  126. }  
  127.    
  128.   
  129.   
  130. Boss 拥有 Office 和 Car 类型的两个属性:  
  131.   
  132.   
  133. 清单 3. Boss.java  
  134.                   
  135. package com.baobaotao;  
  136.   
  137. public class Boss {  
  138.     
    分享到:
    评论

相关推荐

    spring2.5 注解

    使用Spring2.5的Autowired实现注释型的IOC , 使用Spring2.5的新特性——Autowired可以实现快速的自动注入,而无需在xml文档里面添加bean的声明,大大减少了xml文档的维护

    spring2.5 学习笔记

    一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource 17 四、 @Componet 18 五、 @Scope...

    spring autowired注解完整版

    autowired spring autowired注解完整版 ... 使用Spring2.5的新特性——Autowired可以实现快速的自动注入,而无需在xml文档里面添加bean的声明,大大减少了xml文档的维护。(偶喜欢这个功能,因为偶对xml不感冒)。

    spring2.5+hibernate+struts

    网上对spring2.5吹的神了,个个都说要重新加入2.5,我就忍不住去看看这个宝贝,看过发现Autowired注解这个非常重要的功能还是不能脱离bean,而且发现自动装配就好像个鸡肋,2.5既然出来了不用又不爽,用了之后发现...

    Spring@Autowired注解与自动装配.rar

    Spring@Autowired注解与自动装配.rar

    Struts2.1Spring2.5IBatisJQuery框架

    3) 利用Spring的@Service、@Repository两个Annotation来实现Service类、DAO类在Spring容器中的自动注册,利用@Autowired来实现Service与其他对象的引用。 通过框架提供的以上组件,除了基本的配置,如数据源、事务等...

    Spring2.5_基于注解驱动的SpringMVC

    import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.spring...

    spring 注解Autowired、service、Autowired 的使用

    NULL 博文链接:https://huihai.iteye.com/blog/1880106

Global site tag (gtag.js) - Google Analytics