`
luowei31
  • 浏览: 80070 次
  • 性别: 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文档的维护

    使用 Spring 2_5 注释驱动的 IoC 功能.mht

    **Spring 2.5 注释驱动的 IoC 功能详解** Spring 框架自 2.5 版本开始引入了对注解的强大支持,极大地简化了依赖注入(Dependency Injection,简称 DI)的配置过程。注解驱动的 IoC(Inverse of Control,控制反转...

    spring 源码中文注释

    Spring框架是Java开发中最广泛应用的轻量级框架之一,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。这份"spring 源码...

    基于Maven构建的Spring IoC源码实例

    在"基于Maven构建的Spring IoC源码实例"中,我们可以学到如何使用Maven搭建Spring项目,并通过Spring IoC实现组件间的依赖注入。以下是这个实例中可能包含的关键知识点: 1. **Maven项目结构**:了解标准的Maven...

    spring-source中文注释版.zip

    下载"spring-source中文注释版.zip"后,你可以使用IDEA这样的集成开发环境直接导入,通过阅读注释来深入理解Spring框架的工作机制,这对于提升Java开发技能和解决实际问题大有裨益。同时,结合Spring官方文档和其他...

    关于spring boot中几种注入方法的一些个人看法

    在 Spring 2.5 引入了 @Autowired 注释,我们平常直接引用的时候很少注意这些,只是自己写好了一个方法或者 springboot 自动配置好的一个方法我们要在另一个类中去调用,这个时候,我们就会采用该注释。 2. @...

    spring-framework-5.2.0.RELEASE-master.zip

    通过阅读`@Autowired`、`@PostConstruct`、`@PreDestroy`等注解的实现,我们可以了解到Spring如何进行自动装配。同时,对于`BeanDefinition`、`BeanPostProcessor`等关键接口的注释,能帮助我们深入理解bean的生命...

    简单手写springIOC注解模式

    3. **@Autowired**: Spring通过此注解实现依赖注入。Spring会根据类型或名称自动匹配并注入依赖。如果需要基于名称注入,可以添加`@Qualifier("dependencyName")`。 4. **@Repository、@Service、@Controller**: ...

    spring源码深度解析(包含所有spring源码,带全部的注释以及案例,很适合入门级)

    1. **IoC容器**:Spring的核心是IoC容器,它负责管理对象的生命周期和对象之间的依赖关系。IoC通过配置文件或注解来定义对象及其依赖关系,实现对象的创建和管理。在源码中,你可以看到`BeanFactory`和`...

    ioc-aop:看完spring的源码后,自己手动实现一个类似Spring的IOC和AOP功能的演示,代码注释详细,项目可以直接运行-看

    于是经过一番研究手动实现一个类似Spring的IOC和AOP功能的演示,本demo成功实现了容器的依赖注入和切面的功能,aop使用CGLIB实现。 说明 首先代码的测试运行demo见 应用程序 public static void main(String[] args...

    spring+maven项目工程

    在"通过注释实现IOC"部分,我们指的是使用Spring的注解驱动配置来管理对象之间的依赖关系。例如,@Autowired注解可以自动将匹配类型的bean注入到需要它的类中,无需显式地创建对象实例。此外,@Component、@Service...

    Spring_in_Action

    1. **依赖注入**:Spring的核心特性之一,如何通过XML或注解方式实现对象间的依赖关系管理,以及如何使用@Autowired和@Qualifier注解。 2. **AOP(面向切面编程)**:解释什么是切面,如何定义和使用通知(advice)...

    spring源码下载

    Spring框架是Java开发中不可或缺的一部分,它以其模块化、易用性和灵活性著称。Spring Framework 2.5.6是该框架的一个较早版本,但仍然包含了许多...Spring源码的结构清晰,注释丰富,是学习Java企业级开发的宝贵资源。

    spring 4.0.7 源码

    在源码中,可以看到`org.springframework.beans`和`org.springframework.context`包下的类,如`BeanFactory`和`ApplicationContext`,它们是IoC容器的实现基础。 2. **AOP(Aspect Oriented Programming)**:...

    Spring动态代理二.docx

    升级后,靠注释自动装配@Autowired 实现,但是底层还是靠 ref 实现。 集成 web: 在 web.xml 文件内添加监听,用来加载 Spring 的主配置文件。标准配置文件路径:配置文件放入 config 文件夹(日志配置文件保留在...

    Struts2+Spring+Ibatis整合

    5. **Action类和Service层**:在Struts2中定义Action类,这些类通常是Spring中的Bean,通过@Autowired注解实现依赖注入。Service层负责业务逻辑,它调用DAO层进行数据操作。 6. **DAO层**:使用iBatis提供的...

    静态方法中调用Spring注入过程解析

    Spring框架使用IOC容器来管理Bean的生命周期,使得开发者可以专注于业务逻辑的实现。 @Autowired @Autowired是Spring框架提供的一个注解,用于实现依赖注入。@Autowired可以将Bean自动装配到容器中,使得开发者...

    spring-master-class:Spring Framework 5的更新介绍。成为了解Spring In Depth核心功能的专家。 您将在课程期间编写单元测试,AOP,JDBC和JPA代码。 包括对Spring Boot,JPA,Eclipse,Maven,JUnit和Mockito的介绍

    您将了解如何使用Spring注释-@ Autowired,@ Component,@ Service,@ Repository,@ Configuration,@ Primary...。 您将深入了解Spring MVC-DispatcherServlet,模型,控制器和ViewResolver 您将使用各种Sp

Global site tag (gtag.js) - Google Analytics