Spring基本概念解析(一)

写博客的目的:

1.记录自己的想法,方便追溯。
2.让大家纠正我想法中不正确的点,自我提高。
3.给在校的学弟学妹们或者刚工作的同事们一点点启发。

背景:

我在学校的时候其实也是听说过Spring的,也去查过Spring的资料,都是一些重复的词语,或者过于“专业”的描述,让人实在看不进去,因此其实一直在思考,Spring是什么,为什么需要Spring,怎么去用Spring。虽然现在也不算想的很清楚,但是感觉可以站在一个名词解释者的角度来输出一下我的想法。

直接搜Spring,我们会发现一系列名词开始洗脑,如下:

1. IOC

2. 控制反转

3. 依赖注入

4. AOP

5. 面向切面编程

看到这些不如心里默唱“淡黄的长裙,蓬松的头发...”,为了不耽误周末看直播,这次就先解释前三个词吧。

1. Spring为啥叫Spring?

最憨的说法是,因为是java开发者的春天(Spring)...
有趣的说法是,因为有冬眠(Hibernate)

2. 学术界代码和工业界写代码的区别

绝大多数情况下(为了严谨),学术界相对来说,代码量会小一点,项目结构会更简单,多数是数值仿真的代码,写出来的很多是一次性代码,在完成作业,课设,实验后,基本不会再拿来使用或者优化迭代。来公司后,发现公司的代码是需要维护的,这里的维护有两层含义,一个是修改原有代码的bug,二是增加新的功能。

言归正传:

3. IOC

IOC的全称是Inversion Of Control,中文名:控制反转(开始洗脑),首先我们需要把控制反转给补充完整,

(1)控制?

控制 = 创建/管理对象

(2)反转?

反转:与正常的控制(把(1)的控制赋值进来)相反,即与正常的创建/管理对象相反

(3)控制反转?

把(2)赋值进来,与正常的创建/管理对象相反

(4)正常的创建对象,管理对象的流程?

正常的创建对象:以Person为例

public class Person {

    private String name;

    private int age;

}

我们去创建对象的时候,最正常的方式是

Person person = new Person();

结论:我们(写代码的人)来控制创建对象,创建流程是采用new的方式。

(5)与正常的创建/管理对象相反指的是?

某个东西去控制创建对象,这个事情现在不交给我们直接new,这个东西就是Spring。

4.依赖注入

依赖注入:英文全称Dependency Injection,缩写DI,

(1)依赖注入的全称:创建对象时,该对象依赖的东西注入到该对象中

以Person为例:

传统方式(在学校时):

public class Person {

    private String name;

    private int age;
    
    private Body body;
    
    private Soul soul;

    public Person(String name, int age, Body body, Soul soul) {
        this.name = name;
        this.age = age;
        this.body = body;
        this.soul = soul;
    }
}

创建Person对象的方式:

Person person = new Person(
                "zhangsan",
                20,
                new Body(),
                new Soul()
        );

创建Person对象时,发现Person对象依赖name,age,body,soul这四个属性,但是body和soul是两个对象,因此上面的代码采用的是,我们(写程序的人)通过new对象来进行注入的。

总结一下:在创建对象时,我们通过new出该对象的依赖,然后手动注入(填充到构造方法中去)到该对象中

使用Spring(工作中):

        //Spring帮大家创建好了,现在可以拿出来用
        Body body;
        
        //Spring帮大家创建好了,现在可以拿出来用
        Soul soul;
        
        Person person = new Person(
                "zhangsan",
                20,
                body,
                soul
        );

总结一下:依赖注入,本质上就是Spring帮我们完成了手动生成一个对象再注入的步骤,并且依赖注入是创建对象也就是控制反转中的一环

全文总结

1.IOC/控制反转:就是把控制创建/管理对象的权利交给Spring,我们利用Spring去完成对象的创建/控制。
2.依赖注入/DI:就是在创建对象时,不用我们自己去把需要的属性填充到构造器中,又是把苦力活扔给Spring去完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2.1 我们的理念是:让别人为你服务 IoC是随着近年来轻量级容器(Lightweight Container)的...
    好好学习Sun阅读 2,753评论 0 11
  • 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Sp...
    dinel阅读 2,329评论 0 6
  • 这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring ...
    杂货铺老板阅读 1,469评论 0 2
  • 1.1.1 Spring 框架 Spring 框架是一个分层架构,由 7 个定义良好的模块组成。它的成功来源于理念...
    程序员成长记阅读 708评论 0 0
  • 在我的世界还没有开始建造,只存留在我的脑海中的时候,就崩析于燕子离开的那天。 那天,距离她二十二岁的生日还有一个星...
    暖清阳阅读 338评论 1 1