`
DigitalSonic
  • 浏览: 210220 次
社区版块
存档分类
最新评论

那些你该了解的Spring子项目

阅读更多

去年年底,Spring Framework正式发布了3.2GA版本,距离3.1版的发布时间正好相隔一年,而距离最早的Sprig Framework 1.0 Final发布也 已8年有余。现在的Spring几乎成了Java项目中的“标配”,被运用于大大小小的系统之中。它出众的模块化特性让人们可以仅仅使用需要的部分,所以 很多开发者往往只了解Spring核心框架中的IoC和AOP,有的还用了数据访问和MVC部分,而不关心其他内容,更不用提它的子项目了。

 

 

在首次SpringOne中国大会上,几位Spring开发团队的成员表示Spring核心框架的发布之所以间隔时间越来越大,正是因为越来越多的 功能被放到了子项目中独立开发,所以这些子项目才变得愈发重要起来。比如,现在日益流行起来的Spring Batch、Spring Integration和Spring Data,正如Mark Pollack博士在接受采访时所表示的那样:

Mark Pollack 写道
我们一直在持续追踪Maven上的下载统计信息,这些项目的下载量都是呈指数级增长的。我最近没有关注,但我认为,Spring Integration和Spring Batch的流行程度比较接近。Spring Data JPA是最流行的项目,虽然NoSQL的讨论很热烈,但企业开发者还是在使用关系型数据库,所以对这个结果我们并未感到太吃惊。我们的MongoDB支持、Redis支持最近也越来越流行了,还有Neo4j,它们的成长曲线很漂亮,终会和Spring Integration和Spring Batch一样流行的。

虽然我们无法了解详细的下载统计数据,不过通过Google Trends,还是可以对这三个子项目关注度的发展趋势有所了解。

Spring Data

Spring Framework中的数据访问模块对JDBC及ORM提供了很好的支持,随着NoSQL和BigData的兴起,出现了越来越多的新技术,比如非关系型数据库、MapReduce框架,Spring Data正 是为了让Spring开发者能更方便地使用这些新技术而诞生的“大”项目——它由一系列小的项目组成,分别为不同的技术提供支持,例如Spring Data JPA、Sprng Data Hadoop、Spring Data MongoDB、Spring Data Redis等等。通过Spring Data,开发者可以用Spring提供的相对一致的方式来访问位于不同类型的数据存储中的数据

 

除了新技术,Spring Data还为传统的关系型数据库提供了很多额外的支持,让开发者能够更好地利用关系型数据库,比如对Oracle RAC的支持。

Spring Batch

Spring Batch是一款专门针对企业级系统中的日常批处理任务的轻量级框架,能够帮助开发者方便地开发出强壮、高效的批处理应用程序。瑞友科技IT应用研究院副院长池建强是这样介绍Spring Batch的

池建强 写道
Spring Batch是一款优秀的、开源的大数据量并行处理框架。通过Spring Batch可以构建出轻量级的、健壮的并发处理应用,支 持事务、并发、流程、监控、纵向和横向扩展,提供统一的接口管理和任务管理。

 

Spring Batch对批处理任务进行了一定的抽象,它的架构可以大致分为三层,自上而下分别是业务逻辑层、批处理执行环境层和基础设施层。构建于Spring Framework之上,Spring Batch可以很好地利用Spring带来的各种便利,同时也为开发者提供了相对熟悉的开发体验。

 

很多人在了解了Spring Batch的流程控制和定义部分时,都会将其和工作流引擎混淆在一起。针对这个问题,Spring Batch的开发者Josh Long(他同时也是开源工作流引擎Activiti的贡献者)做出了这样的解释:

Josh Long 写道
Spring Batch更多地关注于大规模的批处理任务,例如,它提供了很多方法来读取大型的文件(比如1GB的CSV、XML文件),在数据库中加载或更新几万甚至几十万条记录。试想,一个对大规模批处理并不熟悉的开发者很可能会直接select出所有记录,以至于拖垮整个系统,而使用了Spring Batch,框架会帮助他每次捞取一部分记录进行分页,在更新时分批进行提交……

 在处理大任务时,还可以根据需要,将任务拆成多个部分分配到不同的服务器上进行处理,随后再整合结果。其可扩展性和灵活性由此就已可见一斑了。

Spring Integration

在企业软件开发过程中,经常会遇到需要与外部系统集成的情况,这时可能会使用EJB、RMI、JMS等各种技术,也许你会引入ESB。如果你在开发时用了Spring Framework,那么不妨考虑Spring Integration——它为Spring编程模型提供了一个支持企业集成模式(Enterprise Integration Patterns)的扩展,在应用程序中提供轻量级的消息机制,可以通过声明式的适配器与外部系统进行集成。

 

Spring Integraton中有几个基本的概念——Message(带有元数据的Java对象)、Channel(传递消息的管道)和Message Endpoint(消息的处理端)。在处理端可以对消息进行转换、路由、过滤、拆分、聚合等操作;更重要的是可以使用Channel Adapter,这是应用程序与外界交互的地方,输入是Inbound、输出则是Outbound,可选的连接类型有很多,比如AMQP、JDBC、 Web Services、FTP、JMS、XMPP、多种NoSQL数据库等等。只需通过简单的配置文件就能将所有这些东西串联在一起,实现复杂的集成工作。

 

Spring还有很多其他子项目,比如:

 

  • Spring Security(早期也叫Acegi),是较为成熟的子项目之一,是一款可定制化的身份验证和访问控制框架
  • Spring Roo,快速应用程序开发工具,可以在短时间内方便地生成应用程序
  • Spring Mobile,对Spring MVC的扩展,旨在简化移动Web应用的开发
  • Spring for Android,用于简化Android原生应用程序开发的Spring扩展

大家可以访问SpringSource的项目页面或者它们的GitHub了解更多信息。您使用过哪些Spring子项目呢,不妨也和大家分享一下吧。

 

(本文首发于InfoQ中文站,地址为:http://www.infoq.com/cn/news/2013/01/spring-subprojects ,其实最近写的东西都是先发在InfoQ上,想过几天发博客,结果事情一多就忘了,就挑几篇自己感觉还行的集中搬一次吧。)

分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.5.2. 了解自己 3.5.2.1. BeanFactoryAware 3.5.2.2. BeanNameAware 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.1.1. 使用BeanPostProcessor的Hello World示例 3.7.1.2. ...

    Spring 2.0 开发参考手册

    17.3.2. 使用HessianServiceExporter暴露你的bean 17.3.3. 客户端连接服务 17.3.4. 使用Burlap 17.3.5. 对通过Hessian或Burlap暴露的服务使用HTTP基础认证 17.4. 使用HTTP调用器暴露服务 17.4.1. 暴露服务对象 ...

    一统江湖微服务架构之SpringCloud

    1、能说出微服务架构特点。 2、能说出微服务技术栈的构成。 3、理解Spring Cloud Eureka服务治理的流程。...7、了解Spring Cloud Config、Spring Cloud Bus、Spring Cloud Sleuth等其它子项目的应用场景。

    hibernate + spring 简化包

    该文件夹下还有一些类似spring-Xxx.jar的压缩包, 这些压缩包是spring.jar压缩包的子模块压缩包。除非确定整个J2EE应用只需要使用Spring的某一方面时,才考虑使用这中分模块压缩包。通常建议使用Spring.jar  ◆...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...

    Spring中文帮助文档

    3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ...

    Spring API

    3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ...

    spring web flow demo

    Spring Web Flow 是 Spring 的一个子项目,其最主要的目的是解决跨越多个请求的、用户与服务器之间 的、有状态交互问题。最新版本为 2.0 ,相比于 1.x 版的 Spring Web Flow ,有以下几个值得注意的新 特性。 • 与 ...

    Spring Cloud基于Spring Boot实现的微服务框架,实现微服务架构所需的组件.docx

    注:Spring Boot 简单理解就是简化 Spring 项目的搭建、配置、组合的框架。因为与构建微服务本身没有直接关系,所以本文不对 Spring Boot 进行展开。 另外本文有一些例子涉及到 Spring 和 Spring Boot,建议先了解...

    跨境电商+Spring Cloud+Vue+微服务架构+锋迷商城+实战项目

    跨境电商+Spring Cloud+Vue+微服务架构+锋迷商城+实战项目 电商基础知识+数据分析+推广渠道+店铺运营+电商笔记 电子商务发展规划+政策解读+商务部官方网站 是一个基于Spring Cloud、Vue和微服务架构的跨境电商实战...

    最新SpringCloud

    1、能说出微服务架构特点。 2、能说出微服务技术栈的构成。 3、理解Spring Cloud Eureka服务治理的流程。... 7、了解Spring Cloud Config、Spring Cloud Bus、Spring Cloud Sleuth等其它子项目的应用场景。

    JPA+SpringData操作数据库----深入了解SpringData

    1.SpringData:Spring的一个子项目。用于简化数据库访问,支持NoSQL和关系数据存储。其主要目标是使数据库的访问变得方便快捷。2.JPASpringData:致力于减少数据访问层(DAO)的开发量.开发者唯一要做的,就只是声明...

    ddd-spring-microservices:使用六角形体系结构和DDD的用于微服务的Spring项目的演示

    这是一个示例项目,旨在演示在使用域驱动设计(DDD)方法进行设计后,将正交软件体系结构与Spring子模块结合使用的好处。 经过大量研究,我找不到使用这种方法的代码。 因此,我开始结合可以在Internet上找到的内容...

    SpringBoot项目基于spring boot的小型诊疗预约平台的设计与开发.zip

    SpringBoot项目基于Spring Boot的小型诊疗预约平台是一个为个体医生、小型诊所和患者设计的服务系统。它利用Spring Boot的快速开发特性,结合了医生信息管理、预约排班、在线预约、电子病历、咨询沟通以及支付处理等...

    SpringCloud项目中接入Nacos作为注册中心-(二) 创建服务消费者

    了解springcloud架构可以加求求:三五三六二四七二五九 同样为nacos-consumer增加配置文件,内容如下 server: port: 9528 spring: application: name: nacos-consumer cloud: nacos: discovery: server-addr:...

    SpringBoot全教程+SpringCloudAlibaba笔记.rar

    《Spring Cloud Alibaba学习笔记》其实是阿里的微服务解决方案,是阿里巴巴结合自身微服务实践,开源的微服务全家桶,在Spring Cloud项目中孵化成为Spring Cloud的子项目。第一代的Spring Cloud标准中很多组件已经停...

    spring-boot-actuator

    是的一个子项目。 它可以轻松地为您的应用程序添加多种生产级服务。 在本指南中,您将构建一个应用程序,然后了解如何添加这些服务。 你将构建什么 本指南将带您使用 Spring Boot Actuator 创建“hello world” 。 ...

    spring-boot-master-class:了解并喜欢Spring Boot的强大功能-展示了其所有功能,这些内容包括开发一个管理待办事项的Web应用程序和用于调查问卷的基本API。 还涵盖单元测试,模拟和集成测试

    Sprint Boot子大师班 了解并喜欢Spring Boot的强大功能-展示了其所有功能,这些内容包括...您将通过90多个步骤逐步了解Spring Boot。 这门课程是Spring Boot入门的完美入门。 这是课程不同部分的快速概述: 10个步骤

    社区:Zowe社区-子项目,小组,贡献准则,会议纪要等等

    Zowe社区由几个子项目组成,这些子项目专注于代码库的特定区域。 像任何开源项目一样,每个子项目都有其自己的治理结构和发布过程,与主要框架准则保持一致。 Zowe子项目具有温育后,活性的3阶段的生命周期和名誉如...

Global site tag (gtag.js) - Google Analytics