Core Container由spring-core,spring-beans,spring-context,spring-context-support,and spring-expression这些模块组成。
spring-core,spring-beans是该框架的基础部分,包含IOC和DI功能。BeanFactory 实现了工厂模式。它消除了对单例的需要,并允许您将依赖关系的配置和规范与实际的逻辑程序相分离。
spring-context基于core和beans模块提供基础,它是以类似于JNDI注册的框架式方式访问对象的一种方法。context模块继承了beans模块的特点,并提供了对国际化,事务传播,资源加载,通过servlet 容器透明的创建上下文。context模块也支持Java EE的特性,例如EJB,JMX 和远程。ApplicationContext接口是Context模块的重要部分,spring-context-support对整合常见的第三方库集成到spring应用程序上下文中提供了支持,尤其是对缓存和调度的支持。
spring-expression模块提供了一种强大的表达式语言,能够在运行时查询和操作一个对象图表。它是JSP2.1规范中规定的统一表达式语言的扩展。该语言提供了设置和获取属性值,属性分配,方法调用,访问数组、集合和索引器的内容,逻辑和算数运算符,变量命名,以及从Spring的IOC容器中通过名称检索对象。它还支持列表投影和选择以及常见列表聚合。
spring-aop提供了符合联盟规定的面向切面编程实现的,允许你定义一个方法拦截器和切入点,用于分离功能代码,使用源级元数据功能,你可以以类似于.net属性的方式将行为信息合并到代码中。
单独的spring-aspects模块,提供了与AspectJ的集成。
spring-instrumentation模块提供了在某些应该服务器中使用类加载器的实现。spring-instrument-tomcat模块包含spring的Tomcat测试代理。
Spring Framework4包含spring消息传递模块,包含springIntegration项目的抽象,如message,MessageChannel,MessageHandler,和其他作为基于消息传递的应用程序的基础,该模块还包括一组用于消息映射到方法的注解,类似于基于Spring MVC注解的编程模型。
数据访问层包含JDBC,ORM,OXM,JMS和Transaction模块。
spring的jdbc模块提供了一个jdbc抽象层,消除了冗长的JDBC编码和解析数据库供应商特定错误代码的需要。
spring的tx模块支持用于实现特殊接口和所有POJO的类的程序化和声明式事务管理。
spring的orm模块提供了用于对象关系映射的API集成层,例如JPA和Hibernate。使用spring的ORM模块,你可以使用这些ORM框架与Spring提供的其他所有功能结合使用,例如前面提到的声明式事务管理功能。
spring的oxm模块,提供了一个支持Object/XML映射实现的抽象层,如JAXB,Castor,JiBX和XStream。
Spring的JMS模块包含用于生产和使用消息的功能,自Spring Framework4.1以来,它提供了与Spring-messaging模块的集成。
Web层由spring-web,spring-webmvc,spring-websocket模块组成。
spring-web模块提供了基本的面向web的集成功能,例如文件上传功能,使用servlet监听器和面向web的应用程序赏析问来初始化IOC容器。它还包含了一个HTTP客户端和Spring的远程支持的web相关部分。
spring-webmvc模块包含用于web应用程序的Spring的模型视图控制器(MVC)和Rest Web Services实现。Spring 的MVC框架提供了领域模型代码和web表单之间的彻底分离,并与Spring框架的所有其他功能进行集成。
Spring的测试模块支持使用Junit或者TestNG对Spring组件进行单元测试和集成测试。