强大的、基于 JavaBeans 的、采用控制反转(Inversion of Control,IoC)原则的 配置管理,使得应用程序的组建更加简易快捷。
一个可用于 Java EE 等运行环境的核心 Bean工厂。
数据库事务的一般化抽象层,允许声明式(Declarative)事务管理器,简化事务的划分使之与底层无关。
内建的针对 JTA 和单个 JDBC 数据源的一般化策略,使Spring的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反。
JDBC 抽象层提供了有针对性的异常等级(不再从 SQL 异常中提取原始代码),简化了错误处理,大大减少了程序员的编码量。再次利用 JDBC 时,你无需再写出另一个'终止'(finally)模块。并且面向 JDBC 的异常与 Spring 通用数据访问对象(Data Access Object)异常等级相一致。
以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 MyBatis 、SQL Maps 集成。利用控制反转机制全面解决了许多典型的 Hibernate 集成问题。所有这些全部遵从 Spring 通用事务处理和通用数据访问对象异常等级规范。
灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如 JSP、FreeMarker、Velocity、Thymeleaf 等。值得注意的是,Spring 中间层可以轻易地结合于任何基于 MVC 框架的网页层,例如 Struts、WebWork 或 Tapestry。
提供诸如事务管理等服务的AOP框架。
在设计应用程序 Model 时,MVC模式(例如 Struts)通常难于给出一个简洁明了的框架结构。Spring 却具有能够让这部分工作变得简单的能力。程序开发员们可以使用Spring的JDBC抽象层重新设计那些复杂的框架结构。
控制反转容器(依赖注入)
编辑
控制反转(IOC,Inverse Of Control),即把创建对象的权利交给框架,也就是指将对象的创建、对象的存储、对象的管理交给了Spring容器。Spring容器是Spring中的一个核心模块,用于管理对象,底层可以理解为是一个Map集合。
面向切面程序设计
编辑
面向切面程序设计(Aspect-Oriented Programming, AOP) 就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任分开封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
数据访问(DAO层支持)
编辑
Spring Data实现了对数据访问接口的统一,支持多种数据库访问框架或组件(如:JDBC、Hibernate、MyBatis(iBatis))作为最终数据访问的实现。
事务管理
编辑
Spring框架为事务管理提供了一致的抽象,具有以下优点:
跨不同事务API(如:Java事务、JDBC、Hibernate和Java Persistence API事务(JPA))的一致编程模型
支持声明式事务
与诸如JTA之类的复杂事务API相比,用于程序化事务管理的API更简单
与Spring的数据访问抽象出色地集成
模型-视图-控制器(MVC)
编辑
Spring MVC 实现了基于 MVC 设计方法的实现,结合基于Java注解的配置,允许开发者开发出低代码侵入的Web应用项目,并简便地实现大部分Web功能(包括请求参数注入、文件上传控制等)。
远程访问
编辑
“约定大于配置”的快速应用开发
编辑
Spring Boot
编辑
Spring Boot是基于Spring Framework 4.0衍生的,用于快速搭建独立的基于生产级别的Spring应用的框架,可以以最小的依赖引入来构建一个Spring应用。并且它还具有以下特点:
拥有嵌入式的Tomcat, Jetty, Undertow或者Reactor Netty(无需部署war文件)
尽可能地自动配置(@AutoConfiguration)Spring和第三方库
提供用于生产的功能,例如指标、运行状态检查和外部化配置
无需麻烦而冗余的XML配置,一切都可以使用Java配置
批处理
编辑
整合框架
编辑