当前位置:首页 > 开发 > 编程语言 > Spring > 正文

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

发表于: 2013-03-16   作者:bijian1013   来源:转载   浏览:
摘要: 前提条件:在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 kil

前提条件:在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基础实例(依赖注入和控制反转)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
spring是一个轻量级的容器框架,主要是为了使企业的开发变得简单、高效。无论是从大小还是开销来讲
IoC——Inversion of Control 控制反转 DI——Dependency Injection 依赖注入 要想理解上面两个概念
大名鼎鼎的Spring 大家都听过, spring 是一个开源框架, Spring 为简化企业级应用开发而生。使用 S
定义: 在运行期,由外部容器动态的将依赖对象动态地注入到组件中。 两种方式: 手工装配 -set方式
从网上看到一篇非常不错的文章,转过来跟大家分享一下,让你从根本上理解spring的控制反转和依赖注
  Spring.Net 中提供了很多功能,比如依赖注入,面向切面编程(AOP),数据访问抽象以及ASP.Net扩展
转自http://dotnetfresh.cnblogs.com/archive/2005/06/27/181878.html 依赖倒置、控制反转和依赖注
导读:   摘自(http://www.contextfree.net)   向依赖关系宣战   依赖倒置、控制反转和依赖注
控制反转:框架控制应用/组件 依赖倒置: 依赖注入:框架动态注入依赖关系到应用/组件 ---------------
控制反转容器&依赖注入模式 Inversion of Control Containers and the Dependency Injection patter
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号