Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架
Spring的核心模块实现了IOC的功能,它将类与类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描述,由IOC容器负责依赖类之间的创建,拼接,管理,获取等工作,BeanFactory接口是Spring框架的核心接口,它实现了容器的很多的核心功能。
Context模块构建与核心模块之上,扩展了Beanfactory的功能,添加了i18n国际化,Bean生命周期控制、框架事件体系,资源加载透明化等多项功能。此外,该模块还提供了许多企业级服务的支持,如邮件服务,任务调度,JNDI获取,EJB集成,远程访问等。ApplicationContext是Context模块的核心接口
表达式语言模块是统一表达式语言的一个扩展,该表达式语言用于查询和管理运行期的对象,支持设置/获取对象属性,调用对象方法,操作数组、集合等。此外,该模块还提供了逻辑表达式运算,变量定义等功能,可以方便地童工表达式串和Spring IoC容器进行交互。
AOP是进行横切逻辑编程的思想,在AOP模块里,Spring提供了满足AOP Alliance 规范的实现,还整合了AspectJ这种AOP语言级的框架。在Spring里实现AOP编程有众多选择。可以通过代理类在运行期修改类的字节码,改变一个类的功能,从而实现AOPde 功能。
任务应用程序的核心问题是对数据的访问和操作。数据有多种表现形式,如数据表,XML,消息等,而每种数据形式又拥有不同的数据访问技术,可以直接通过JDBC或Mybatis直接访问。
Spring站在DAO的抽象层面,建立了一套面向DAO层的统一异常体系,同时将各种访问数据的检查型异常转换为非检查型异常,为整合各种持久层框架提供基础。其次,Spring通过模块化技术对各种数据访问技术进行了薄层封装,将模式化的代码隐藏起来,使数据访问的程序得到大幅的简化。这样,Spring就建立起了和数据形式及访问技术无关的统一层DAO,借助AOP技术,Spring提供了声明式事务的功能。
该模块建立在Application Context模块之上,提供了web应用的各种工具类,如通过Listener或Servlet初始化Spring容器,将Spring容器注册到Web容器中,该模块还提供了多项面向Web的功能,如透明化文件上传、Velocity、FreeMarker、XSLT的支持。Spring可以整合Struts、WebWork等MVC框架
Spring自己提供了一个完整的类似Struts的MVC框架,称为Spring MVC。
Spring-Boot-+-Flowable-快速实现工作流