一、Spring的含义:
Spring是一个开源的轻量级JavaEE企业级开发应用框架,其目的是用于简化企业级应用程序的开发。它可以帮助程序创建对象并管理这些对象之间的依赖关系,从而提高开发效率,且符合现有程序的低耦合、高内聚的特点。
在这里补充一下耦合和解耦的概念:
1.耦就是合:指类与类之间的依赖程度。(耦合性好则说明两个类之间的依赖程度较为紧密)
2.解耦:就是在把两者之间的依赖关系疏松一下,以免在更改一个类的时候影响另一个类。
例如:模块一依赖于模块二,二变了一就要一起变就是耦合,二变了一不用变就叫解耦。
二、Spring中有两个核心模块:
1.Aop(Aspect Oriented Programming):面向切面编程。大家都知道OOP是面向对象编程,它是对对象的属性和行为进行抽象封装,但是AOP是对其某个步骤和阶段进行切面的提取,也就是说,如果几个或者更多的逻辑过程中重复的操作行为,AOP就可以将其提取出现用动态代理进行统一维护。
2.IoC(Inversion of Control):控制反转。控制反转是Spring容器的核心,AOP、声明事务等功能都是在此基础上完成的,所谓IoC,就是通过容器来控制业务和对象之间的依赖关系,而非用代码直接控制。也就是说,所有的类都需要在Spring中登记,告诉它你是什么,你需要什么。那么在程序运行到适当是时候,就会把你要的东西主动给你,也会把你给需要你的东西,是一点是通过DI(Dependency Injection)依赖注入来实现的。所有的类的创建、销毁都由Spring来控制,所以这叫控制反转。