前提条件:在http://www.springsource.org/download网站上下载Spring框架,并将spring.jar、log4j-1.2.15.jar、commons-logging.jar加载至工程
1.武器接口
package com.bijian.spring.base3; public interface Weapon { void killEnemy(); }
2.武器实现类枪
package com.bijian.spring.base3; public class HandGun implements Weapon { public void killEnemy() { System.out.println("枪杀敌"); } }
3.士兵类
package com.bijian.spring.base3; public class Soldier { private Weapon weapon; public void setWeapon(Weapon weapon) { this.weapon = weapon; } public void fight() { weapon.killEnemy(); } }
4.applicationContext3.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="s1" class="com.bijian.spring.base3.Soldier"> <property name="weapon"> <ref bean="handgun"></ref> </property> </bean> <bean id="handgun" class="com.bijian.spring.base3.HandGun"></bean> </beans>
5.测试类
package com.bijian.spring.base3; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext3.xml"); Soldier s1 = (Soldier)context.getBean("s1"); s1.fight(); } }
运行结果:枪杀敌
这里使用Spring解决了HandGun和Soldier的耦合问题。Soldier类中再也看不到HandGun的踪影了,Soldier只依赖于接口,而最终Soldier还是使用了HandGun。Sping在这里管理了单个的对象,也管理了对象之间即Soldier和HandGun的依赖关系。原本是由Soldier控制HandGun的实例化的,转变为由Spring容器来控制,这里发生了控制权的转移,这就是控制反转(Inversion of Control,管称IOC)。当Soldier需要HandGun时,Spring会自动将HandGun对象注入给Soldier,这就是依赖注入。
相关推荐
**Spring 框架中的控制反转 (IoC) 和...总之,Spring的控制反转和依赖注入机制是其核心特性,它们提高了代码的可测试性、降低了耦合度,并使应用程序更加灵活。理解并熟练运用这些概念,对提升开发效率和质量至关重要。
Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它改变了传统Java应用程序中对象的创建和管理方式。在传统的程序设计中,我们通常手动创建对象并管理它们之间的依赖关系,而在Spring中,这些...
在`Spring_01_入门篇_依赖注入(控制反转)_XML`中,我们可以看到一个或多个XML配置文件,它们定义了bean的定义,包括bean的类名、属性以及它们之间的依赖关系。例如: ```xml ``` 在这个例子中,`exampleBean`...
也就是实例化一个类 不再由调用者来完成 通常由 Spring 容器来完成 然后注入调用者 因此称为控制反转 也称为依赖注入 ">javaEE 开发中 现在最成熟的框架之一应该就是spring了 spring框架最强大的地方就是实现了依赖...
在Spring框架中,依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)是核心设计理念,它们旨在降低组件之间的耦合度,提高代码的可测试性和可维护性。理解这两个概念对于掌握...
其中,IoC和依赖注入(Dependency Injection, DI)是Spring框架最核心的部分之一。 #### 二、IoC容器概述 在传统的Java应用程序中,对象的创建和管理通常由程序员来完成。这种方式会导致代码之间存在高度耦合,难以...
在Spring框架中,依赖注入和控制反转实际上是同一概念的不同表达形式。当程序中的组件需要另一个组件的帮助时,通常是由调用者(即需要帮助的角色)来创建被调用者(即提供帮助的角色)的实例。但在Spring中,这个...
自定义Spring的控制反转和依赖注入,实质上是实现Spring容器的解析、管理bean定义以及处理依赖关系的能力。理解这一过程有助于我们更好地利用Spring框架,同时也能在需要时进行定制化开发。通过自定义配置,我们可以...
Spring框架是Java开发中广泛应用的一个开源框架,以其优秀的反转控制(Inversion of Control,IoC)和依赖注入(Dependency Injection,DI)理念为核心,极大地简化了企业级应用的开发工作。下面将详细介绍这两个...
在Spring框架中,依赖注入是核心特性之一,通过控制反转(Inversion of Control,IoC)实现了组件之间的解耦。 ### 依赖注入的基本概念 依赖注入允许开发者在不修改代码的情况下,通过配置来改变对象间的依赖关系。...
【标题】"第三章 Spring4 依赖注入"深入解析 在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种核心的设计模式,它允许我们创建松耦合的代码,提高软件的可测试性和可维护性。Spring4版本进一步优化...
在Java编程中,Spring框架是应用最广泛的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)容器。这篇博客"使用反射和注解模拟Spring的依赖注入"探讨了如何通过基本的Java特性来实现...
在Spring框架中,依赖注入(Dependency Injection,DI)是一种设计模式,用于实现控制反转(Inversion of Control,IoC),降低组件之间的耦合度,使得各个组件的职责更加清晰。在Spring的面试中,面试官常会问到...
Spring的核心特性之一就是它的Inversion of Control(IoC,控制反转)容器,也被称为Dependency Injection(DI,依赖注入)。这个概念是Spring框架使应用程序组件之间解耦的关键。让我们深入探讨一下Spring的IoC和...
在Java开发中,Spring框架是应用最广泛的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)容器。它极大地简化了组件之间的依赖管理,提高了代码的可测试性和可维护性。本篇文章将深入...
总的来说,控制反转和依赖注入是Spring框架的核心特性,它们帮助开发者编写松耦合、可扩展的代码,提高了软件的可维护性和测试性。通过理解和熟练应用这些概念,开发者可以更有效地利用Spring框架构建复杂的企业级...
依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)是软件设计中的核心概念,尤其在面向对象编程中扮演着重要角色。这两种技术的主要目标是降低代码之间的耦合度,提高模块间的...
Spring框架的核心特性之一就是依赖注入(Dependency Injection,简称DI),它通过控制反转(Inversion of Control,简称IOC)实现。这个"helloIoc.zip"压缩包包含的是一组用于演示Spring IOC基本概念和使用的测试...
本教程将通过一系列基础实例,深入剖析Spring的核心特性——控制反转(IOC)和依赖注入(DI)。以下是对每个压缩包子文件内容的详细解释: 1. **Spring_0900_IOC_Life_Cycle**: 这部分主要讲解了Spring中的bean...