Spring Framework 分为五大模块,本文参考来自Spring官网reference
1.Core container
由spring-core,spring-beans,spring-context,spring-context-support,spring-expression(Spring expression language)模块组成
(1),core和beans是这个框架的核心,提供最基础的功能(反转控制和依赖注入),运用复杂的工厂模式去实现
(2).Spring框架的初始化,context和support模块t又一个优秀的设计模式运用,context((上下文)模式,spring-context基于core以及bean构建,support集成构建第三方context,缓存(ehcache,guava,jCache),邮件(JavaMail),计划(CommonJ,Quartz),模板引擎(FreeMarker,JasperReports,Velocity),spring-expression在运行时查询和改变对象
2.Aop and instrumentation
面向切面(aspect-oriented)编程,以及Spring类工具和类加载器实现
3.Messaging
spring-message对于基于消息程序抽象定义:Message(消息)->MessageChannel(通道)->MessageHandler(处理)
4.Data Access/Integration
顾名思义,如Spring-jdbc对于jdbc的封装,Spring-tx提供声明式事务,Spring-orm/oxm(object-relational/object/xml mapping)集成JPA,Hibernate,JDO/JAXB,Castor...等的api,
spring-jms基于JMS(Java Messaging Service),spring-messaging的实现
5.Web
由spring-web,spring-webmvc,spring-websocket,spring-webmvc-portlet组成
spring-web面向web的集成,spring-webmvc局域spring-web提供mvc模式,spring-webmvc-portlet在portlet环境下的mvc实现
6.Test
spring-test提供单元和集成测试(Junit/TestNG),可以加载Context以及模拟对象