Spring

java 后台开发无论如何都是绕不过Spring的,其核心是IOC和AOP。spring是一个轻量级的应用开发平台。

[TOC]

1. 【整体架构】

image

2. 【核心容器】

spring-core、spring-beans、spring-context、spring-context-support和spring-expression共同组成spring的核心容器。

spring-corespring-beans提供框架的基础部分,包括IOC功能,BeanFactory是一个复杂的工厂模式的实现,将配置和特定的依赖从实际程序逻辑中解耦。

context模块建立在core和beans模块的基础上,增加了对国际化的支持、事件广播、资源加载和创建上下文,ApplicationContext是context模块的重点。

spring-context-support提供对常见第三个库的支持,集成到spring上下文中,比如缓存(ehcache,guava)、通信(javamail)、调度(commonj,quartz)、模板引擎等(freemarker,velocity)。

spring-expression模块提供了一个强大的表达式语言用来在运行时查询和操作对象图,这种语言支持对属性值、属性参数、方法调用、数组内容存储、集合和索引、逻辑和算数操作及命名变量,并且通过名称从spring的控制反转容器中取回对象。

3. 【AOP和服务器工具】

spring-aop模块提供面向切面编程实现,单独的spring-aspects模块提供了aspectj的集成和适用。

spring-instrument提供一些类级的工具支持和ClassLoader级的实现,用于服务器。spring-instrument-tomcat针对tomcat的instrument实现。

4. 【消息组件】

spring框架4包含了spring-messaging模块,从spring集成项目中抽象出来,比如Messge、MessageChannel、MessageHandler及其他用来提供基于消息的基础服务。

5. 【数据访问/集成】

数据访问和集成层由JDBC、ORM、OXM、JMS和事务模块组成。

spring-jdbc模块提供了不需要编写冗长的JDBC代码和解析数据库厂商特有的错误代码的JDBC抽象出。

spring-tx模块提供可编程和声明式事务管理。

spring-orm模块提供了领先的对象关系映射API集成层,如JPA、Hibernate等。

spring-oxm模块提供抽象层用于支持Object/XML maping的实现,如JAXB、XStream等。

spring-jms模块包含生产和消费消息的功能,从Spring4.1开始提供集成spring-messaging模块。

6. 【web】

Web层包含spring-web、spirng-webmvc、spring-websocket和spring-webmvc-portlet模块组成。

spring-web模块提供了基本的面向web开发的集成功能,例如多文件上传、使用servert listeners和web开发应用程序上下文初始化IOC容器。也包含HTTP客户端以及spring远程访问的支持的web相关部分。

spring-webmvc包含spring的model-view-controller和REST web services 实现的Web应用程序。

spring-webmvc-portlet模块提供了MVC模式的portlet实现,protlet与Servlet的最大区别是请求的处理分为action和render阶段,在一个请求中,action阶段只执行一次,但render阶段可能由于用户的浏览器操作而被执行多次。

7. 【测试】

spring-test模块支持通过组合Junit或TestNG来进行单元测试和集成测试,提供了连续的加载ApplicationContext并且缓存这些上下文。

8. 参考:

results matching ""

    No results matching ""