1. spring体系结构
spring框架提供大约20个模块,如下:
1)核心容器
核心容器由核心、bean、上下文和语言模块组成:
① 核心模块提供了框架的基本组成部分,包括IOC和依赖注入(依赖就是如类A依赖类B,注入就是类B通过IOC被注入到类A中);
② Bean模块提供BeanFactory,bean工厂是一个工厂模式的复杂实现;
③ 上下文模块建立在由核心和Bean模块提供的坚实基础上,它是访问定义和配置的任何对象的媒介。ApplicationContext接口是上下文模块的重点;
④ 表达式语言模块在运行时提供了查询和操作一个对象图的强大的表达式语言。
2. 数据访问/集成
数据访问/集成层,包含JDBC、ORM、OXM、JMS和事务处理模块:
① JDBC模块提供了删除冗余的JDBC相关编码的JDBC抽象层;
② ORM模块是流行的对象关系映射API,包括JPA、JDO、Hibernate和iBatis,提供了集成层;
③ OXM模块提供了抽象层,它支持对JAXB、Castor、XMLBeans、JiBX和XStream的对象/XML映射实现;
④ java消息服务JMS模块包含生产和消费的信息功能;
⑤ 事务模块为实现特殊接口的类及所有的POJO支持编程式和声明式事务管理。
3. WEB
web层由web、web-MVC、web-socket和web-portlet组成:
① web模块提供了基本的面向web的集成功能,例如多个文件上传的功能和使用servlet监听器和面向web应用程序的上下文来初始化IOC容器;
② web-MVC模块包含spring的MVC,实现了web应用程序;
③ web-socket模块为websocket-based提供了支持,而且在web应用程序中提供了客户端和服务端之间通信的两种方式;
④ web-portlet模块提供了在portlet环境中实现MVC,并反映了web-servlet模块的功能。
4. 其他
还有其他一些模块,如AOP、Aspects、Instrumentation、web和测试模块:
① AOP模块提供了面向切面的编程实现,允许定义方法拦截器和切入点对代码进行干净的解耦,它实现了应该分离的功能;
② Aspects模块提供了AspectJ集成,这是一个功能强大且成熟的面向切面编程框架;
③ Instrumentation模块在一定的应用服务器中提供了类instrumentation的支持和类加载器的实现;
④ Messaging模块为STOMP提供了支持作为在应用程序中WebSocket子协议的使用。它也支持一个注解编程模型,它是为了选路和处理来自WebSocket客户端的STOMP信息;
⑤ 测试模块支持对具有JUnit或TestNG框架的Spring组件的测试。