`

Spring基础实例(依赖注入和控制反转)

阅读更多

前提条件:在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 控制反转 依赖注入

    **Spring 框架中的控制反转 (IoC) 和...总之,Spring的控制反转和依赖注入机制是其核心特性,它们提高了代码的可测试性、降低了耦合度,并使应用程序更加灵活。理解并熟练运用这些概念,对提升开发效率和质量至关重要。

    springIOC控制反转 依赖注入实例

    Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它改变了传统Java应用程序中对象的创建和管理方式。在传统的程序设计中,我们通常手动创建对象并管理它们之间的依赖关系,而在Spring中,这些...

    Spring_01_入门篇_依赖注入(控制反转)_XML

    在`Spring_01_入门篇_依赖注入(控制反转)_XML`中,我们可以看到一个或多个XML配置文件,它们定义了bean的定义,包括bean的类名、属性以及它们之间的依赖关系。例如: ```xml ``` 在这个例子中,`exampleBean`...

    java中spring依赖注入的简单例子

    也就是实例化一个类 不再由调用者来完成 通常由 Spring 容器来完成 然后注入调用者 因此称为控制反转 也称为依赖注入 "&gt;javaEE 开发中 现在最成熟的框架之一应该就是spring了 spring框架最强大的地方就是实现了依赖...

    理解Spring中的依赖注入和控制反转

    在Spring框架中,依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)是核心设计理念,它们旨在降低组件之间的耦合度,提高代码的可测试性和可维护性。理解这两个概念对于掌握...

    Spring Ioc 注解 依赖注入

    其中,IoC和依赖注入(Dependency Injection, DI)是Spring框架最核心的部分之一。 #### 二、IoC容器概述 在传统的Java应用程序中,对象的创建和管理通常由程序员来完成。这种方式会导致代码之间存在高度耦合,难以...

    Spring 核心机制(依赖注入)

    在Spring框架中,依赖注入和控制反转实际上是同一概念的不同表达形式。当程序中的组件需要另一个组件的帮助时,通常是由调用者(即需要帮助的角色)来创建被调用者(即提供帮助的角色)的实例。但在Spring中,这个...

    自定义spring控制反转(依赖注入)

    自定义Spring的控制反转和依赖注入,实质上是实现Spring容器的解析、管理bean定义以及处理依赖关系的能力。理解这一过程有助于我们更好地利用Spring框架,同时也能在需要时进行定制化开发。通过自定义配置,我们可以...

    自己实现的Spring反转控制和依赖注入

    Spring框架是Java开发中广泛应用的一个开源框架,以其优秀的反转控制(Inversion of Control,IoC)和依赖注入(Dependency Injection,DI)理念为核心,极大地简化了企业级应用的开发工作。下面将详细介绍这两个...

    spring依赖注入的实现原理

    在Spring框架中,依赖注入是核心特性之一,通过控制反转(Inversion of Control,IoC)实现了组件之间的解耦。 ### 依赖注入的基本概念 依赖注入允许开发者在不修改代码的情况下,通过配置来改变对象间的依赖关系。...

    第三章 Spring4 依赖注入

    【标题】"第三章 Spring4 依赖注入"深入解析 在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种核心的设计模式,它允许我们创建松耦合的代码,提高软件的可测试性和可维护性。Spring4版本进一步优化...

    使用反射和注解模拟Spring的依赖注入

    在Java编程中,Spring框架是应用最广泛的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)容器。这篇博客"使用反射和注解模拟Spring的依赖注入"探讨了如何通过基本的Java特性来实现...

    面试官常问的spring依赖注入和bean的装配问题.pdf

    在Spring框架中,依赖注入(Dependency Injection,DI)是一种设计模式,用于实现控制反转(Inversion of Control,IoC),降低组件之间的耦合度,使得各个组件的职责更加清晰。在Spring的面试中,面试官常会问到...

    Spring Ioc(依赖注入)入门例子--属性注入

    Spring的核心特性之一就是它的Inversion of Control(IoC,控制反转)容器,也被称为Dependency Injection(DI,依赖注入)。这个概念是Spring框架使应用程序组件之间解耦的关键。让我们深入探讨一下Spring的IoC和...

    模拟Spring的依赖注入

    在Java开发中,Spring框架是应用最广泛的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)容器。它极大地简化了组件之间的依赖管理,提高了代码的可测试性和可维护性。本篇文章将深入...

    实例讲解Java的Spring框架中的控制反转和依赖注入

    总的来说,控制反转和依赖注入是Spring框架的核心特性,它们帮助开发者编写松耦合、可扩展的代码,提高了软件的可维护性和测试性。通过理解和熟练应用这些概念,开发者可以更有效地利用Spring框架构建复杂的企业级...

    依赖注入控制反转面向切面.doc

    依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)是软件设计中的核心概念,尤其在面向对象编程中扮演着重要角色。这两种技术的主要目标是降低代码之间的耦合度,提高模块间的...

    helloIoc.zip spring ioc控制反转简单测试代码

    Spring框架的核心特性之一就是依赖注入(Dependency Injection,简称DI),它通过控制反转(Inversion of Control,简称IOC)实现。这个"helloIoc.zip"压缩包包含的是一组用于演示Spring IOC基本概念和使用的测试...

    spring基础实例源码

    本教程将通过一系列基础实例,深入剖析Spring的核心特性——控制反转(IOC)和依赖注入(DI)。以下是对每个压缩包子文件内容的详细解释: 1. **Spring_0900_IOC_Life_Cycle**: 这部分主要讲解了Spring中的bean...

Global site tag (gtag.js) - Google Analytics