Spring模块解析

pring Framework由约20个模块组成的特征组成。这些模块分为核心容器,数据访问/集成,Web,AOP(面向方面​​编程),Instrumentation,Messaging和Test,如下图所示。

Spring模块解析_第1张图片

以下各节列出了每个功能的可用模块及其工件名称及其涵盖的主题。工件名称与相关性管理工具中使用的工件ID相关联。

核心容器(Core Container)

  1. 核心容器由spring-corespring-beansspring-contextspring-context-support,和spring-expression(Spring Expression Language) 5个模块组成。
  2. spring-corespring-beans模块提供框架的基本零件,包括IOC和依赖注入特征。BeanFactory是一个复杂的工厂模式实施。它消除了对程序化单例的需求,并允许将实际程序逻辑中的依赖关系的配置和规范分离。
  3. Context (spring-context) 模块建立由设置在固体基体上的核心和豆类模块:它是访问一个框架式的方式是类似于一个JNDI注册表对象的装置。Context模块从Beans模块中继承了它的特性,并增加了对国际化(例如使用资源包),事件传播,资源加载以及例如Servlet容器的上下文透明创建的支持。Context模块还支持Java EE功能,如EJB,JMX和基本远程处理。该ApplicationContext接口是语境模块的焦点。 spring-context-support 提供了将常见的第三方库集成到Spring应用程序上下文中的支持,特别是用于缓存(EhCache,JCache)和调度(CommonJ,Quartz)。
  4. spring-expression模块提供了强大的表达式语言,用于在运行时查询和操作对象图。它是JSP 2.1规范中规定的统一表达式语言(统一EL)的扩展。该语言支持设置和获取属性值,属性赋值,方法调用,访问数组的内容,集合和索引器,逻辑和算术运算符,命名变量以及从Spring的IoC容器中按名称检索对象。它还支持列表预测和选择以及常用列表聚合。

AOP and Instrumentation(仪表)

  1. spring-aop模块提供了符合AOP联盟的面向方面编程实现,允许您定义方法拦截器和切入点,以干净地分离实现应该分离的功能的代码。使用源代码级元数据功能,您还可以将行为信息以类似于.NET属性的方式整合到您的代码中。

  2. spring-aspects模块提供与AspectJ的集成。

  3. spring-instrument模块提供了在特定应用程序服务器中使用的类工具支持和类加载器实现。

  4. spring-instrument-tomcat 模块包含Tomcat的Spring工具代理。

Messaging

Spring框架4包括spring-messaging从关键抽象模块 Spring集成项目,例如MessageMessageChannelMessageHandler,和其他人作为基于消息的应用奠定了基础。该模块还包括一组用于将消息映射到方法的注释,类似于基于Spring MVC注释的编程模型。

Data Access/Integration(数据访问/集成)

所述数据访问/集成层由JDBC,ORM,OXM,JMS和交易模块。

  1. spring-jdbc模块提供了一个JDBC -abstraction层消除了需要冗长的JDBC编码和数据库厂商特有的错误代码解析。
  2. spring-tx模块支持编程和声明式事务 管理,用于实现特殊接口和所有POJO(普通Java对象)的类。
  3. spring-orm模块为流行的对象关系映射 API 提供了集成层 ,包括JPA和 Hibernate。使用spring-orm模块,您可以将这些O / R映射框架与Spring提供的所有其他功能(如前面提到的简单的声明式事务管理功能)结合使用。
  4. spring-oxm模块提供了支持JAXB,Castor,JiBX和XStream等对象/ XML映射实现的抽象层。
  5. spring-jms模块(Java消息服务)包含用于生成和使用消息的功能。自Spring Framework 4.1以来,它提供了与spring-messaging模块的集成 。

Web

网络层由 spring-web, spring-webmvc and spring-websocket 模块组成。
1. spring-web模块提供基本的面向Web的集成功能,如多部分文件上传功能,使用Servlet侦听器的IoC容器的初始化以及面向Web的应用程序上下文。它还包含一个HTTP客户端和Spring远程处理支持的Web相关部分。
2. spring-webmvc模块(也称为Web-Servlet模块)包含Spring的模型 - 视图 - 控制器(MVC)和Web应用程序的REST Web服务实现。Spring的MVC框架提供了域模型代码和Web表单之间的清晰分离,并且与Spring框架的所有其他功能集成在一起。

Test(测试)

spring-test模块支持使用 JUnit 或 TestNG 对 Spring 组件进行单元测试和 集成测试。它提供了一致的Spring 的加载 ApplicationContext 和这些上下文的缓存。它还提供了模拟对象,您可以使用它来单独测试您的代码。

使用场景

前面介绍的构建模块使Spring成为许多场景中的合理选择,从在资源受限的设备上运行的嵌入式应用程序到使用Spring事务管理功能和Web框架集成的完整企业应用程序。
使用第三方Web框架的Spring中间层:
Spring模块解析_第2张图片

Spring的声明式事务管理功能使Web应用程序完全事务化,就像使用EJB容器管理的事务一样。所有的定制业务逻辑都可以用简单的POJO实现,并由Spring的IoC容器管理。附加服务包括支持发送电子邮件和独立于Web层的验证,它允许您选择在哪里执行验证规则。Spring的ORM支持与JPA和Hibernate集成; 比如在使用Hibernate的时候,可以继续使用你现有的映射文件和标准的Hibernate SessionFactory配置。表单控制器将网络层与领域模型无缝集成,无需使用 ActionForms 或其他将HTTP参数转换为您的域模型的值的类。
使用第三方Web框架的Spring中间层:
Spring模块解析_第3张图片
有时候情况不允许你完全切换到不同的框架。Spring框架并没有强迫你在它使用的一切; 这不是一个 全有或无解的解决方案。使用Struts,Tapestry,JSF或其他UI框架构建的现有前端可以与基于Spring的中间层集成,从而使您可以使用Spring事务功能。你只需要使用一个连接你的业务逻辑,ApplicationContext并使用一个WebApplicationContext整合你的Web层。

远程使用情况:
Spring模块解析_第4张图片

当你需要通过Web服务来访问现有的代码,你可以使用Spring的 Hessian-,Rmi-或HttpInvokerProxyFactoryBean类。启用对现有应用程序的远程访问并不困难。

EJBs - 包装现有的POJO:
Spring模块解析_第5张图片
Spring框架还为Enterprise JavaBeans 提供了一个访问和抽象层,使您可以重用现有的POJO,并将其包装在无状态的会话bean中,以用于可能需要声明性安全性的可伸缩的,故障安全的Web应用程序。

Spring Framework Artifacts

GroupId ArtifactId 描述
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 核心实用程序,许多其他Spring模块使用
org.springframework spring-expression Spring表达式语言(SpEL)
org.springframework spring-instrument JVM引导的Instrumentation代理
org.springframework spring-instrument-tomcat Tomcat的Instrumentation代理
org.springframework spring-jdbc JDBC支持包,包括DataSource设置和JDBC访问支持
org.springframework spring-jms 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 用于Web应用程序的REST Web服务和模型视图控制器实现
org.springframework spring-websocket WebSocket和SockJS实现,包括STOMP支持

你可能感兴趣的:(Java框架)