一、Spring模块
从Spring3开始,Spring进行了模块化,将原先的一个jar包拆分成很多个jar包,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。
Spring 框架(框架是一个半成品)提供约 20 个模块,,这些模块分为核心容器、数据访问/集成、Web、AOP、Instrumentation、消息和测试,可以根据应用程序的要求来使用,如下图所示:

1. 核心容器
核心容器由spring-core、spring-beans、spring-context、spring-context-support和spring-expression 5个模块构成。
spring-core和spring-beans模块为框架提供最基本的功能,包括IoC和依赖注入。BeanFactory是一个工厂的实现类。它可以免除用户手动创建单例类并且对象之间解耦。
context(spring-core)模块基于spring-beans和BeanFactory两个模块,允许以框架方式访问对象,这类似于JNDI。Context模块继承了Beans模块,并支持国际化、事件传播、资源加载等。Context模块支持Java EE特性,如EJB、JMX、远程访问。spring-context接口是Contet模块的重点。spring-context-support提供将第三方库集成到Spring的功能,如缓存(EhCache,JCache)和任务调度(CommonJ,Quartz)等。
spring-expression模块提供强有力的在运行时查询和操作对象的语言。这种语言支持获取和设置属性、方法执行、获取数组或集合中的对象、逻辑计算、命名变量,在Spring的IoC容器中获得对象。
核心容器是Spring 启动最基本的条件。
2. AOP 和 Instrumentation
spring-aop模块提供切面编程的实现。可以自定义方法拦截和切入点。
spring-aspects模块提供与AspectJ的集成。
spring-instrument模块为特定的服务器提供类加载服务。spring-instrument模块是集成了Tomcat。
3. Data Access/Integration
这一层由JDBC、ORM、OXM、JMS、和事物模块组成。
spring-jdbc模块,主要为了解决数据库繁多的问题,应用此可不需要关注使用的数据库。
spring-tx模块提供编程式或声明式事务处理。
spring-orm模块提供流行的对象关系映射的APIs,包含JPA和Hibernate.
spring-oxm模块提供对Object/XML映射的支持,例如JAXB,Castor,JiBX和XStream。
spring-jms模块(Java消息服务)包含生成和消费消息的功能。在Spring4.1以后,它集成了spring-messaging模块。
4. Messaging(消息)
Spring4提供了spring-messaging模块,主要类有Message,MessageChannel,MessageHandler。这个模块还包含一些映射消息到方法的注解,类似于Spring MVC基于编程模式的注解。
5. Web
Web层包含spring-web、spring-webmvc和spring-websocket 3个模块。
spring-web模块提供面向Web方法的集成特性,例如多部分文件上传、通过监听初始化IoC容器和面向Web的Context,还包含HTTP客户端和对远程的支持。
spring-webmvc模块(也被称作Web-Servlet模块)包含Spring MVC框架。
spring-websocket模块提供对socket的全面支持。
6. Test(测试)
spring-test模块通过JUnit或者TestNG来对Spring的模块进行单元测试和集成测试。它提供一致的Spring 的ApplicationContexts 和context的缓存。它还提供mock对象让你测试你的代码。
二、Spring相关jar包
|
org.springframework |
spring-aop |
基于代理的AOP支持 |
|
org.springframework |
spring-aspects |
基于AspectJ 的切面编程 |
|
org.springframework |
spring-beans |
Beans的支持, 包括 Groovy |
|
org.springframework |
spring-context |
应用程序运行时上下文,包括调度和远程抽象 |
|
org.springframework |
spring-context-support |
提供第三方库到Spring的支持 |
|
org.springframework |
spring-core |
核心工具类,被其他模块使用 |
|
org.springframework |
spring-expression |
Spring 表达式语言 (SpEL) |
|
org.springframework |
spring-instrument |
代理JVM相关的 |
|
org.springframework |
spring-instrument-tomcat |
Tomcat的插件 |
|
org.springframework |
spring-jdbc |
提供jdbc的支持,包括数据源和JDBC访问 |
|
org.springframework |
spring-jms |
JMS支持包,包括接收和发送消息类的支持 |
|
org.springframework |
spring-messaging |
对消息传递体系结构和协议的支持 |
|
org.springframework |
spring-orm |
对象/关系 映射, 拨快对JPA 和 Hibernate的支持 |
|
org.springframework |
spring-oxm |
对象/XML 映射的支持 |
|
org.springframework |
spring-test |
对Spring组件单元测试和集成测试的支持 |
|
org.springframework |
spring-tx |
事务支持,包块DAO支持和JCA集成 |
|
org.springframework |
spring-web |
Web 支持,包括客户端和Web访问 |
|
org.springframework |
spring-webmvc |
一个MVC框架 |
|
org.springframework |
spring-websocket |
WebSocket 和SockJS 的实现,包括对STOMP的支持 |
三、Spring核心功能
1. IoC/DI :控制反转/依赖注入
2. AOP:面向切面编程
3. 声明式事务
Spring框架模块详解
7722

被折叠的 条评论
为什么被折叠?



