Spring -- 概述

2021-02-12  本文已影响0人  Travis_Wu

一、Spring 简介

二、Spring 发展历程

三、Spring 的优势

四、Spring 的核心结构

Spring是⼀个分层非常清晰并且依赖关系、职责定位非常明确的轻量级框架,主要包括几个大模块:数据处理模块、Web模块、AOP(Aspect Oriented Programming)/Aspects模块、Core Container 模块和 Test 模块,Spring 依靠这些基本模块,实现了⼀个令人愉悦的融合了现有解决方案的零侵入的轻量级框架

五、Spring 的核心思想 -- IOC

注意: IOC 和 AOP 不是 spring 提出的,在 spring 之前就已经存在,只不过更偏向于理论化,spring 在技术层次把这两个思想做了非常好的实现

  1. 什么是 IOC
    IoC Inversion of Control(控制反转 / 反转控制),注意它是⼀个技术思想,不是⼀个技术实现
    • 描述的事情:Java开发领域对象的创建,管理的问题
    • 传统开发方式:比如类 A 依赖于类 B,往往会在类 A 中 new ⼀个 B 的对象
    • IOC 思想下开发方式:我们不用自己去 new 对象了,而是由 IOC 容器(Spring框架)去帮助我们实例化对象并且管理它,我们需要使用哪个对象,就去问 IOC 容器要即可,我们丧失了⼀个权利(创建、管理对象的权利),得到了⼀个福利(不用考虑对象的创建、管理等⼀系列事情)
    • 为什么叫做控制反转
      控制:指的是对象创建(实例化、管理)的权利
      反转:控制权交给外部环境了(spring框架、IOC容器)
  2. IOC 解决了什么问题
    IOC 解决对象之间的耦合问题
  3. IOC 和 DI 的区别
    DI:Dependancy Injection(依赖注入)
    怎么理解:IOC 和 DI 描述的是同⼀件事情,只不过角度不⼀样罢了


六、Spring 的核心思想 -- AOP

  1. 什么是 AOP
    AOP:Aspect oriented Programming 面向切面编程 / 面向方面编程
    AOP 是 OOP 的延续,从 OOP 说起,OOP 三大特征:封装、继承和多态
    OOP 是⼀种垂直继承体系,OOP 编程思想可以解决大多数的代码重复问题,但是有⼀些情况是处理不了的,比如下面的在顶级父类 Animal 中的多个方法中相同位置出现了重复代码,OOP 就解决不了


  1. AOP在解决什么问题
    在不改变原有业务逻辑情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复
  2. 为什么叫做面向切面编程
    切:指的是横切逻辑,原有业务逻辑代码我们不能动,只能操作横切逻辑代码,所以面向横切逻辑
    面:横切逻辑代码往往要影响的是很多个方法,每⼀个方法都如同⼀个点,多个点构成面,有⼀个面的概念在里面


上一篇下一篇

猜你喜欢

热点阅读