`
aijuans
  • 浏览: 1566056 次
社区版块
存档分类
最新评论

我的spring学习笔记2-IoC(反向控制 依赖注入)

阅读更多
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlServer.class三个类,但我们不知道用户会选哪个数据库,所以我们不能把调用数据库的方法固定。当我们发布给用户时,我们也不可能去修改原代码,而只需去修改一个配置文件如database=mysql/oracle/sqlserver就可以了。也可以这么说,向调用数据库的方法传入一个参数如mysql就调用Mysql.calss类。这就可以理解为反向控制和依赖注入。到这里也许我们会想当传入一个类对应的参数就可以调用该类,那么我们传入一个方法对应的参数可以调用相对应的方法吗?答案是当然可以的。
也许程序员不爱看文字描述,下面的就用代码来辅助:
1、  Implements(接口) 或 extends(继承类)
2、  继承接口或继承类的类
3、  用set方法和构造法注入类的IOC类
4、  调用IoC的实现类
Mysql.class 、Oracle.class、 SqlServer.class继承DatebaseImp.class
DataBaseIoC.class用构造和set方法注入Mysql.class 或Oracle.class或 SqlServer.class
Test.class调用DataBaseIoC.class的方法。

一、定义接口:DataBaseImp
public interface DataBaseImp {
    public void getDate();
}

二、定义调用接口的类Mysql、Oracle、Sqlserver
public class Mysql  implements DataBaseImp {
    public void getDate() {
       System.out.println("调用Mysql数据");
    }
}
 
public class Oracle implements DataBaseImp {
    public void getDate() {
       System.out.println("调用Oracle数据");
    }
}
 
public class SqlServer implements DataBaseImp {
    public void getDate() {
       System.out.println("调用SqlServer数据");
    }
}

三、定义注入类
public class DateBaseIoC {
    private DataBaseImp dataBase;
    public void getDate() {
       dataBase.getDate();
    }
    //用set方法注入类
    public void setDataBase(DataBaseImp dataBase) {
       this.dataBase = dataBase;
    }
}

四、定义实现类
public class Test {
    public static void main(String[] args) {
       DateBaseIoC baseIoC = new DateBaseIoC();
       baseIoC.setDataBase(new Mysql()); //调用set
       baseIoC.getDate();
    }

}最后输出:调用Mysql数据

这里主要要说明一下IoC类 DateBaseIoC.class ,上面用的是set方法注入的,下面是构造方法
public class DateBaseIoC{
    private DataBaseImp dataBase;
    //构造方法,在调用时构造
    public DateBaseIoC(DataBaseImp dataBase) {
       this.dataBase=dataBase;
    }
    public void getDate() {
       dataBase.getDate();
    }
}

从上面看出,我们只要修改Test.class实现类就可以调用不同的类,如果把new Mysql()这个Object参数从配置文件里查询调用,那么软件就可以配置了。这里就不多讲如何实现,同时如何调用方法就在这里不多说。
分享到:
评论

相关推荐

    Spring5 框架 ---- IOC容器 ---- 代码

    Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- ...

    Spring-ioc-jar

    这个jar文件"Spring-ioc-jar"包含了实现Spring IOC功能所需的关键类和接口,是学习和使用Spring IOC技术的基础。 Spring框架的IOC容器是其核心组件,主要由`ApplicationContext`和`BeanFactory`两个接口代表。`...

    Spring-IOC笔记

    spring-IOC的一些笔记心得

    spring-demo02-IOC-DI案例.zip

    Spring 框架是 Java 开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection, DI)和控制反转(Inversion of Control, IOC)特性而闻名。在这个名为“spring-demo02-IOC-DI案例”的压缩包中,我们将...

    Spring自学笔记-Ioc(控制反转)容器

    ### Spring自学笔记-Ioc(控制反转)容器 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用。它提供了一种轻量级的方式来管理应用程序的各种组件和服务,使得开发者能够更容易地构建...

    Spring----IOC实现

    10. **测试支持**:Spring的IoC使得测试变得更加容易,因为我们可以轻松地控制依赖的注入,进行隔离测试。 通过理解和应用上述知识点,你将在Spring框架下实现IoC,构建更健壮、易于维护的Java应用程序。在`...

    spring技术--IOC控制反转课件.ppt

    其中,IOC(Inversion of Control,控制反转)是Spring的核心特性之一,它改变了传统对象创建和管理的方式,实现了依赖注入(Dependency Injection)。本课件主要介绍了Spring中的IOC原理、特点以及如何使用。 ### ...

    Spring Ioc 注解 依赖注入

    ### Spring IoC与注解依赖注入详解 #### 一、Spring框架简介 Spring框架是由Rod Johnson创建的一个开源项目,最初是为了解决企业级应用开发中的复杂性问题而诞生的。Spring框架的核心特性包括IoC(Inversion of ...

    maven-spring-ioc

    Spring IoC通过XML配置文件实现了对象的实例化和依赖注入,有效地降低了对象间的耦合,提高了代码的可读性和可维护性。理解并熟练运用Spring的IoC机制是成为一名优秀的Java开发者的关键步骤之一。在实际项目中,结合...

    10-IoC配置-依赖注入概念(DI)

    我相信很多朋友学习IOC概念的时候,查找了很多资料结果还是一头雾水,感觉高深难懂或者一知半解,而我这篇博客就是以通俗易懂的话语,用故事的方式,讲解IOC(控制反转)和DI(依赖注入)的概念,让大家不再晕,不再觉得...

    springIOC控制反转 依赖注入实例

    在传统的程序设计中,我们通常手动创建对象并管理它们之间的依赖关系,而在Spring中,这些任务由IOC容器来处理,实现了从依赖管理到依赖注入的转变。 控制反转(IOC)意味着应用程序不再直接创建对象,而是将对象的...

    spring-demo10-注解-IOC.zip

    "spring-demo10-注解-IOC.zip"这个压缩包文件很显然包含了关于Spring框架如何使用注解进行依赖注入的示例代码。接下来,我们将深入探讨Spring中的注解和依赖注入。 依赖注入(DI)是一种设计模式,它允许我们解耦...

    Spring_IOC-v(上)笔记

    Spring_IOC-v(上)笔记是关于 Spring 框架中的 IoC(控制反转)技术的笔记,主要介绍了 IoC 的概念、依赖注入、Bean 的设置、Spring 组件的管理等知识点。 IoC 技术是 Spring 框架的核心概念之一,它的主要思想...

    Spring-IOC实现

    Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它将对象的创建和管理权交由Spring容器处理,使得开发者可以更专注于业务逻辑的编写,而不是对象的生命周期管理。下面,我们将深入探讨Spring...

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

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

    我的Pro Spring 学习笔记 之二 控制反转(IoC)和依赖注入(DI), Spring初步

    在本文中,我们将深入探讨Spring框架的核心概念——控制反转(Inversion of Control,IoC)和依赖注入(Dependency Injection,DI)。这些概念是Spring框架的基础,对于理解和掌握Spring的使用至关重要。 首先,让...

    Java-Spring-SpringIoC容器-SpringIoC的学习

    在Java Spring框架中,Spring IoC(Inversion of Control,控制反转)是核心特性之一,它使得应用程序的组件之间的依赖关系不再由代码直接管理,而是交由Spring IoC容器负责。这种设计模式降低了代码间的耦合,提高...

    spring-ioc学习

    spring-ioc学习 新手可以下过来学习下, spring-ioc简介

    Spring-IoC 容器 - v1.01

    Spring的IoC容器通过控制反转和依赖注入,极大地简化了Java应用的开发和维护。理解并掌握这些概念和实践,对于提升Java项目的灵活性、可测试性和可扩展性至关重要。通过逐步学习和实践,开发者可以更好地利用Spring...

    Spring--IOC

    Spring框架是Java企业级应用开发中的核心组件,它的全称是Spring Inversion of Control(控制反转)或Dependency Injection(依赖注入)。这是一个轻量级的框架,它通过简化Java应用的开发和管理,使开发者可以更加...

Global site tag (gtag.js) - Google Analytics