我们一般说的Spring框架就是Spring Framework,一种轻量级框架,用于提高开发人员的开发效率和可维护性。它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块包括:核心容器、数据访问/集成、响应式 web 编程、AOP(面向切面编程)、工具、消息和测试模块。

下图对应的是Spring 4.x的版本,目前最新的5.x版本中Web模块的Portlet组件已经被废弃掉,同时增加了用于异步响应式处理的WebFlux组件。

主要模块包括:

Spring Core:Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

Spring AOP:AOP模块是Spring的AOP库,提供了AOP(拦截器)机制,并提供常用的拦截器,供用户自定义和配置。

Spring JDBC:负责Java数据库连接。

Spring JMS:负责Java消息服务。

Spring ORM:用于支持常用的Hibernate,Mybatis等框架,Spring本身并不对ORM进行实现,仅对常见的ORM框架进行封装,并对其进行管理;

Spring Web:WEB模块提供对常见框架如Struts X,SpringMVC,JSF的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器。想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉xin(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!

Spring Test:提供了对JUnit和TestNG测试的支持。

Core Container中的Core组件是Spring所有组件的核心,Beans组件和Context组件是实现IOC和DI的基础,AOP组件用来实现面向切面编程。

常见的Core组件有哪些?

  • IoC Container,控制反转容器
  • Events,事件编程
  • Resources,资源加载
  • i18n,国际化
  • Validation,校验
  • Data Binding,数据绑定
  • Type Conversion,类型转换
  • SpEL,Spring 表达式
  • AOP,面向切面编程