zoukankan      html  css  js  c++  java
  • spring 学习 二 IOC/DI

    中文名称:控制反转

    英文名称:( Inversion of Control )

    1 控制反转作用:

      一般在编写java程序时,需要程序员自己创建对象的实例,例如 A a=new A();语句,就是程序员自己通过new 语句创建要使用的类实例,控制反转就是把创建对象实例的过程交给了spring,程序员不需要再通过new 语句去创建类实例,spring创建好类的实例后,再把创建的类实例注册到spring容器。

    2 IOC最重要的一个作用就是解耦。

    注意:创建类实例可以交给spring,工厂也可以创建类实例,二者的区别?

    3  DI

      DI(Dependency Injection) 依赖注入:可以把依赖注入拆开,拆成依赖和注入。

      依赖:其实就是类关系中的依赖关系,我们最常见的类关系是继承关系,除了继承还有依赖关系

    //下面的的类关系是继承关系,教师类继承了员工类
    
    public class Employee{
        private   String name;
        private Integer age;
        private String workNo;
    }
    
    public class Teacher extends Employee{
        private String className;
        
        private String classNo;
    
    } 
    
    //下面的类关系就是依赖关系,汽车类依赖轮子类
    public class Car{
          private Wheel wheel;
    }
    
    public class Wheel{
        private Integer size;
    }

      注入:既然依赖关系解释清楚,下面就解释注入,注入就是把被依赖的对象放到依赖对象中去,

    上面的例子中,Car是依赖类,Wheel是被依赖类,注入就是把Wheel的对象放进Car对象中去。

    在创建Car的对象时,即Car car=new Car();时,此时我们只是给Car分配了内存空间,car对象中的wheel只是一个引用且值为null,并没有引用任何对象。此时需要创建一个Wheel的对象,让car对象中的wheel属性引用到Wheel对象。这个过程就是注入

    依赖注入的方式:1 构造注入,2 setter方法注入

    spring中对象的创建有三种方式:1 构造器创建,2 实例工厂创建 ,3 静态工厂创建

  • 相关阅读:
    .gitignore 文件无法提交
    关于对接需求的思考
    0算法基础学算法 搜索篇第二讲 BFS广度优先搜索的思想
    Jenkins 新主题样式:jenkins-theme-v2.277
    根据swagger.json生成flutter model,暂无空安全支持
    centos下 连接sqlserver (provide:SSL Provider,error:31
    .net core 中实现一个堆结构
    .net 程序员的centos命令总结
    Spring Cloud 整合 Feign 的原理
    聊聊 Feign 的实现原理
  • 原文地址:https://www.cnblogs.com/cplinux/p/9734298.html
Copyright © 2011-2022 走看看