Spring 是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用,其是一个分层的 JavaSE/EE full-stack(一站式) 轻量级开源框架,主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为JavaEE应用程序开发提供集成的框架。
Spring的核心是控制反转(IOC控制反转)和面向切面(AOP),其优点有6:
1.方便解耦,简化开发,Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理。IOC的作用。
2.AOP编程的支持,Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能,可扩展性高。
3.声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编程。
4.方便程序的测试,Spring对Junit4支持,可以通过注解方便的测试Spring程序。
5.方便集成各种优秀框架,Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持。
6.降低JavaEEAPI的使用难度,Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
AOP 是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构 。AOP 最早由 AOP 联盟的组织提出的,制定了一套规范.Spring 将 AOP 思想引入到框架中,也是 Spring 框架中的一个重要内容,是函数式编程的一种衍生范型利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP 采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)