我们一般说的Spring框架就是SpringFramework,一种轻量级框架,用于提高开发人员的开发效率和可维护性。它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块包括:核心容器、数据访问/集成、响应式web编程、AOP(面向切面编程)、工具、消息和测试模块。
下图对应的是Spring4.x的版本,目前最新的5.x版本中Web模块的Portlet组件已经被废弃掉,同时增加了用于异步响应式处理的WebFlux组件。
主要模块包括:
SpringCore:Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
SpringAOP:AOP模块是Spring的AOP库,提供了AOP(拦截器)机制,并提供常用的拦截器,供用户自定义和配置。
SpringJDBC:负责Java数据库连接。
SpringJMS:负责Java消息服务。
SpringORM:用于支持常用的Hibernate,Mybatis等框架,Spring本身并不对ORM进行实现,仅对常见的ORM框架进行封装,并对其进行管理;
SpringWeb:WEB模块提供对常见框架如StrutsX,SpringMVC,JSF的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器。
SpringTest:提供了对JUnit和TestNG测试的支持。
CoreContainer中的Core组件是Spring所有组件的核心,Beans组件和Context组件是实现IOC和DI的基础,AOP组件用来实现面向切面编程。
常见的Core组件有哪些?
IoCContainer,控制反转容器
Events,事件编程
Resources,资源加载
i18n,国际化
Validation,校验
DataBinding,数据绑定
TypeConversion,类型转换
SpEL,Spring表达式
AOP,面向切面编程