1:Spring是轻量级的开源的JavaEE框架,其目底是解决企业应该开发复杂性。

轻量级:体积小、jar包数量比较少、不需要依赖而外组件、独立进行事用;
开源:免费提供源代码
框架:使用框架后开发更方便,代码更简洁。且解决复杂代码,繁琐配置使用。

2:Spring有俩个核心部分:IOC和AOP

IOC:控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
例如:之前原始方式需要创建对象,穿new 对象创建对象,通过IOC把创建对象过程交给Spring进行关系,由Spring进行管理,由Spring进行对象实例化。
AOP:在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
例如:在一个程序中,需要添加一个功能或者修改一个功能。按照原始方式需要改变原代码实现。使用AOP即可在不修改原代码的情况下进行功能的拓展或增强。

3:Spring特点

方便解耦,简化开发,使用spring之后,通过ioc降低耦合度,简化开发。
Aop编程支持,不改变原代码,可对功能进行拓展。
方便程序测试,spring通过对junit4支持,可以通过注解的方式进行程序测试
方便继承其他框架进行整合使用,如struts,Hibernate、Quartz………
降低JavaEE Api的操作,内部封装简化开发难度,如 JDBC
方便进行事务的操作
Spring源码不管是从设计方面,结构层面都属于Java中的经典代码,处处体现了Java设计模式,堪称Java技术最佳实践范例。