首页 专题 文章 代码 归档
Spring的IOC
2020.01.22 12:03 2020.01.22 12:03

IOC

IOC:Inversion Of Control 控制反转;

简而言之,也就是使用Spring帮我们控制资源的获取方式!

主动式(平常)

一个Student类:

package com.misiai.bean;

public class Student {
    private String name;
    private String sno;

    public Student() {
    }

    public Student(String name, String sno) {
        this.name = name;
        this.sno = sno;
    }
}

创建方式:

Student st = new Student();
String name = st.getName();

我们需要主动的new出一个对象,这在对象少、简单时,也不是难事!但是对象多了,复杂了呢?

比如我们添加了一个Score类?

package com.misiai.bean;

public class Score {
    private Integer math;
    private Integer english;

    public Score(Integer math, Integer english) {
        this.math = math;
        this.english = english;
    }

    public Score() {
    }
}

Student依赖:

package com.misiai.bean;

public class Student {
    private String name;
    private String sno;

    private Score score;
}

那我们就需要

Score score = new Score(120, 99);
Student st = new Student("kuan", "11025", score);
String name = st.getName();

是不是当类与类之间的依赖多了后,也很麻烦?

那这些new的动作交给框架来做如何?

声明式(框架)

如果我们在局部声明一个变量,然后框架就自动给我们new了出来?那是不是非常棒!

public class Test01 {

    //如果我们在这里声明一个变量,然后框架就自动给我们new了出来?那是不是非常棒!
    private static Score score;

    public static void main(String[] args) {
        Student st = new Student("kuan", "11025", score);
        String name = st.getName();
    }
}

是滴,没错,Spring框架就可以提供这样的功能!

spring的IOC帮我们实现,我们只需要在配置文件里面申明一些东西,然后spring框架就可以自动帮我们new了。

而什么出来的对象被spring框架统一管理,所以大家都通常也把IOC叫做容器

本节阅读完毕! (分享
二维码图片 扫描关注我们哟