Spring Batch 2.2.0 RC2 现已发布

发布 | Michael Minella | 2013年05月16日 | ...

我们很高兴地宣布 Spring Batch 2.2.0.RC2 现已通过 SpringSource Milestones 存储库提供。
Spring Batch 主页 | GitHub 源代码 | 参考文档

此版本修复了 2.2.0.RC1 版本中发布的功能中的错误并进行了改进。您可以在 Spring Batch 的变更日志中阅读有关此版本特定更新的更多信息:2.2.0-RC1 到 2.2.0.RC2

链接

Spring Batch 主页 | GitHub 源代码 | 参考文档

本周 Spring - 2013年5月14日

工程 | Josh Long | 2013年5月15日 | ...

欢迎阅读本期《本周 Spring》!本周宣布了一些相当令人兴奋的项目,您可能难以置信,我们快要用完 SpringOne 2012 的重播内容 了!好在 SpringOne 2013 的议程网格很快就会上线,这样我们就可以展望未来了。一如既往,我们有很多内容要介绍,让我们开始吧!

为了准备议程网格的上线,许多新的 SpringOne 2013 会议已被接受:

  1. Jon Brisbin 宣布了 Reactor 项目。Reactor 项目旨在为基于异步 IO 的应用程序提供坚实的基础,在此基础上自然可以为 Grails 和 Spring 等技术提供集成。Reactor 已经有了很好的多语言支持,包括 Groovy 和 Java(尤其是即将发布的 Java 8 版本!)的良好支持。一定要看看,特别是如果您对它与其他异步技术相比如何有疑问,请查看评论区!
  2. Spring Security 负责人 Rob Winch 正在积极增强 Spring Security 和 Spring Security OAuth 的 Java 配置故事。他已经发布了 Spring Security OAuth Java Configuration API 的第一个版本,我相信他对新的 DSL 会很乐意接受任何反馈,所以一定要看看!干得好,Rob!
  3. 5月16日星期四的在线研讨会,由《POJOs in Action》作者 Chris Richardson 主讲,主题是“分解应用程序以实现可部署性和可伸缩性”。立即注册!
  4. 加入 Broadleaf Commerce 的 Andre Azzolini,参加 5 月 28 日星期二的在线研讨会,他们将讨论 从 GWT 迁移到 SpringMVC 的经验教训
  5. Paul Chapman 在 SpringSource 博客上介绍了 Spring MVC 中 丰富的内容协商支持
  6. Chris Harris 在 SpringOne2GX 2012 的演讲 Spring Data MongoDB 项目,现已在 YouTube 上高清播放!
  7. Lee Faus 在 SpringOne2GX 2012 的演讲 Extreme Makeover - Application Edition,现已在 YouTube 上高清播放!
  8. JIWHIZ 博客和博主 Yuan Ji 整理了一篇介绍 Spring Java 配置支持 的精彩博文。
  9. 这篇来自博主 Chris Wong 一月份的博文,题为“JmsTemplate 并非邪恶”,解释了在将原始 ConnectionFactory 与 Spring 的 CachingConnectionFactory 一起使用时的一些细微之处,并且,为了获得额外的加分,介绍了一种显著加快 ActiveMQ 特定方面性能的方法。
  10. HMKcode 博客有一篇全面介绍如何在 Spring MVC 中使用 jQuery-file-upload 插件 的精彩博文。
  11. 您是否已经看过 HATEOAS 了?HATEOAS 是一种用于构建更好的 RESTful Web 服务的模式,一种方法。Spring HATEOAS 使在 Spring MVC 之上轻松实现这一点,而 Geraint Jones 的这篇博客对 Spring HATEAOS 进行了非常好的介绍
  12. 博主 Alexey Zvolinskiy 回答了一个常见问题:如何在 Spring MVC 中将 复选框绑定到在服务器之间来回传递的模型对象
  13. 我们的朋友 @baeldung 维护了一个关于 Spring 在 StackOverflow 上的精彩博文的每日 Twitter 动态,我认为他挖到了一些绝对精彩的内容。其中一篇博文回答了我经常被问到的问题:如何在运行时枚举所有带有 Spring MVC @Controller 注解的 bean?
  14. 在浏览 @SpringAtSO 动态时,我发现的另一篇精彩博文解释了如何在当前请求的线程之外传播请求作用域的属性。这篇博文通常适用于 请求作用域的属性需要在其原始线程和请求之外传播的任何情况

Reactor - JVM 上异步应用程序的基础

工程 | Jon Brisbin | 2013年5月13日 | ...

我们很高兴地宣布,经过长时间的内部孵化,我们正在发布一个用于 JVM 上异步应用程序的基础框架,我们称之为 Reactor。它为 Java、Groovy 和其他 JVM 语言提供了抽象,使构建事件和数据驱动的应用程序变得更容易。它也确实非常快。在一般的硬件上,使用最快的非阻塞 Dispatcher,每秒可以处理超过 15,000,000 个事件。还提供其他调度器,为开发人员提供从线程池风格、长时间运行的任务执行到非...

使用 Spring MVC 进行内容协商

工程 | Paul Chapman | 2013 年 5 月 11 日 | ...

使用 Spring MVC 生成输出有两种方式

  • 您可以使用 RESTful @ResponseBody 方法和 HTTP 消息转换器,通常用于返回 JSON 或 XML 等数据格式。程序客户端、移动应用程序和启用 AJAX 的浏览器是常见的客户端。
  • 或者,您可以使用视图解析。尽管视图完全能够根据您的需要生成 JSON 和 XML(更多内容将在我的下一篇文章中介绍),但视图通常用于为传统的 Web 应用程序生成 HTML 等表示格式。
  • 实际上还有第三种可能性——有些应用程序需要两者,Spring MVC 很容易支持这种组合。我们将在最后回到这一点。

无论哪种情况,您都需要处理控制器返回的相同数据的多种表示形式(或视图)。确定要返回哪种数据格式称为内容协商

有三种情况我们需要知道要在 HTTP 响应中发送哪种数据格式

  • HttpMessageConverters: 确定要使用的正确转换器。
  • 请求映射: 将传入的 HTTP 请求映射到返回不同格式的不同方法。
  • 视图解析: 选择要使用的正确视图。

确定用户请求的格式依赖于 ContentNegotationStrategy。开箱即用提供了默认实现,但您也可以根据需要实现自己的。

在这篇文章中,我想讨论如何配置和使用 Spring 的内容协商,主要是在使用 HTTP 消息转换器的 RESTful 控制器方面。在稍后的文章中,我将展示如何专门使用 Spring 的 ContentNegotiatingViewResolver 来设置内容协商……

本周 Spring - 2013年5月7日

工程 | Josh Long | 2013年5月7日 | ...

欢迎来到《史诗般的 Spring 周!》SpringOne 大会发布了许多新会议,请前往 网站 查看精选会议!我们将在五月底前公布议程网格。

精选 SpringOne2GX 2013 会议已被接受!

      <li><a href="http://www.springone2gx.com/conference/santa_clara/2013/09/session?id=29165">Tackling Big Data Complexity with Spring</a> (Mark Fisher and Mark Pollack)</li>
          <li><a href="http://www.springone2gx.com/conference/santa_clara/2013/09/session?id=29395">Reactor - an asynch  framework for distributed web and enterprise architectures</a> (Jon Brisbin)</li>
      
    • 面向滑雪爱好者的 Spring(Dave Syer 和 Phil Webb)

还有许多其他新会议已被接受

好了,回到我们正常的 Spring 周回顾...一如既往,我们有很多内容要介绍,让我们开始吧!

  1. Juergen Hoeller 和 Marius Bogoevici 的演讲 Spring 应用程序的 Java EE 服务,来自 SpringOne2GX 2012,现已在 YouTube 上高清播放!
  2. John Davies 的演讲 Spring Integration 实际应用,来自 SpringOne2GX 2012,现已在 YouTube 上高清播放!
  3. Kim Saabye Pedersen 编写了一个小示例 关于在 Spring 的事务管理基础设施上,在接口或类上使用 @Transactional。干得好,Kim!
  4. 能否将当前的 Spring Petclinic 应用程序扩展到单服务器实例上每秒处理 1000 个请求?来自 Ippon Technologies 的 Julien Dubois 撰写了一系列五篇精彩的博客文章,探讨了这一主题。如果您错过了之前的汇总,请查看整个系列,从 这里 开始!
  5. Petri Kainulainen 撰写了一篇精彩的博文,介绍了如何使用 Spring Data SOLR 对数据进行排序。
  6. 顺便说一句,我知道我以前提到过,但这真的很有用。您是否查看过 Alvaro VidelaRabbitMQ 模拟器
  7. Spring Data 大牛 Oliver Gierke 回答了一个问题,如何在多租户场景下使用 Spring Data MongoDB?,写了一篇 精彩的回复。一定要看看。一般来说,他的建议适用于许多类似场景。
  8. Serkan ÖZAL 整理了一个 基于字节码的超棒 RowMapper,可与 Spring 的 JDBC 基础设施(如 JdbcTemplate)一起使用,并能像 ORM 一样处理关系。因为它基于字节码,所以它非常快,并且不像 Spring 自带的 BeanPropertyRowMapper 那样受到基于反射的性能限制。我还没有尝试过,但它看起来非常有前景!
  9. 我们的朋友 Roger Hughes 回归了,带来了一个教程(目前有两篇)。第一篇 Spring MVC 中的 RESTful Ajax,建立了一个应用程序(没有 REST 和 Ajax),第二篇然后 介绍了使用 Jackson(一个 JSON 序列化器)序列化数据对象
  10. Bharat Sharma 本周写了一篇关于在 Spring MVC 中 序列化为 JSON 的精彩博文!
  11. 博主 Kal 撰写了一篇关于 Spring MVC 如何简化使用 Spring MVC 和 commons-fileupload 进行 文件上传 的精彩博文。

本周 Spring - 2013年4月30日

工程 | Josh Long | 2013年4月30日 | ...

欢迎阅读本期《本周 Spring》!本周内容丰富,一如既往,让我们开始吧。您错过了上周 Pivotal 的公开启动吗?收看 重播,了解 GE 对新实体的投资!Pivotal 的使命是为企业带来消费级软件——在那里,Spring、Groovy、Grails、RabbitMQ、Redis 和 Cloud Foundry 等开源技术已被广泛采用。请查看新的 Pivotal 网站,在社区链接(右上角)下,了解一些可能令您惊喜的其他开源计划!

  1. Oliver Gierke 宣布 Spring HATEOAS 0.5,其中包含 大量新功能
  2. Spring Security 负责人 Rob Winch 宣布 Spring Security 3.1.4 现已发布。这是一个维护版本,包含多项错误修复,包括对 Spring 3.2 的 OSGi 支持。
  3. Spring Data 大牛 Oliver Gierke 也(天哪,那家伙真是无处不在!)发布了 Spring Data 的路线图:引入 Spring Data “Babbage
  4. 本周发布了 Spring Data Arora SR1(以 Sanjeev Arora 命名)。顺便说一句,您可能已经注意到,各种 Spring Data 发布版的名称都改编自计算机科学界有影响力的名字。新版本以 Charles Babbage 命名。
  5. Adam Shook 和 Dr. Mark Pollack 的在线研讨会 Hadoop、Pivotal HD 和 Spring for Apache Hadoop 现已在线提供。
  6. Azul Systems 的 Gil Tene 在 SpringOne2GX 2012 上做了一个精彩的演讲 理解 Java 垃圾回收及其应对方法,现已在线提供。
  7. YouTube 上提供新高清 SpringOne2GX 重播:使用 Spring Integration 和 Spring Batch 进行性能构建,案例研究:配置多站点内存数据库
  8. James Watters 分享了他发现的一个关于设置 Cloud Foundry 和 BOSH 的视频。如果您想了解 BOSH,这个视频非常精彩,值得一看。
  9. 人们写博客文章的内容有时会让我感到惊讶。Javarevisted 博客有一篇精彩的文章,介绍了 Spring(非常内部化,但稳定)的 org.springframework.util.StringUtils 类,并提供了如何将集合转换为分隔字符串的示例 我认为这可能是关于该主题的太多信息了,但我喜欢其中的热情!
  10. RabbitMQ 开发者倡导者 Alvaro Videla 撰写了一篇关于如何从 PHPUnit 中 单元测试 RabbitMQ 的文章。这种方法很酷,但我想知道它在 Java 和 jUnit 中与并发测试套件执行的兼容性如何。无论如何,这是单元测试我最喜欢的消息队列的好方法!
  11. 您需要 Spring Integration 适配器吗?您是否查看过 Spring Integration 扩展仓库?该仓库只是收集了比 Spring Integration 核心发展更快的适配器,或者仍在完善中的适配器。它是查找各种问题解决方案的好地方。甚至 pull requests 中也充满了有用的东西 - 我看到了由出色的 Gary Russell 贡献的 MQTT 适配器!
  12. 看看 @gopivotal 博客上的这篇精彩文章 800,000 消息/分钟:诺基亚的 HERE 如何使用 #RabbitMQ 创建实时交通地图,它介绍了基于 Spring AMQPRabbitMQ 的诺基亚 HERE 架构。

Spring Tool Suite 和 Groovy/Grails Tool Suite 3.3.0.M1 发布

版本发布 | Martin Lippert | 2013 年 4 月 23 日 | ...

亲爱的Spring社区,

很高兴宣布 Spring Tool Suite (STS) 和 Groovy/Grails Tool Suite (GGTS) 的第一个里程碑版本 3.3.0.M1 发布。

此里程碑版本的主要亮点包括:

  • Spring IDE:改进了对 JavaConfig 驱动的 Spring 项目的支持
  • Groovy-Eclipse:现在支持可自定义的编辑器模板
  • Groovy-Eclipse:二进制(已编译)Groovy 文件中的导航和悬停
  • Grails-IDE:对当前 Grails 2.3 构建的初步支持

这两个工具套件都基于最新的 Eclipse Juno SR2 版本。为了获得最佳性能和稳定性,我们仍然推荐基于 Eclipse 3.8.2 的版本。

第二个里程碑版本 3.3.0.M2 的构建计划在 2013 年 6 月初发布,随后在 2013 年 7 月初发布 3.3.0 版本 - 紧随 Eclipse Kepler 发布之后。

要下载发行版,请访问

详细的新增内容和注意事项可以在这里找到:STS/GGTS 3.3.0.M1 新增内容和注意事项

祝您使用愉快!

本周 Spring - 2013年4月23日

工程 | Josh Long | 2013 年 4 月 23 日 | ...

欢迎回到本期《本周 Spring》!在旧金山,我们正经历着典型的春天带来的生命气息和美丽的天气。这也恰如其分,因为在 Pivotal 的开源社区(包括 Cloud FoundrySpringSource)中,随着我们迈向 4月24日的 Pivotal Initiative 启动,一切都像往常一样忙碌。到时候见!

废话不多说,让我们进入本周的汇总

  1. 您看过 Spring Batch 2.2.0.RC1 中惊人的 Java 配置支持 了吗?我刚刚链接的代码演示了一个完整的、可运行的 Spring Batch 作业,该作业读取一个 .csv 文件,然后将记录写入数据源,所有这些都在类中配置,完全用 Java 实现。这演示了 2.2.0 中的 @EnableBatchProcessing 注解。快来看看吧!
  2. YouTube 上提供新高清 SpringOne2GX 重播:使用 Spring 和 vFabric 实现领域驱动设计Cloud Foundry 上的批处理和集成 以及一个额外会议 理解 Java 垃圾回收及其应对方法
  3. FuzzyDB 开源项目发推表示,他们已 发布了 FuzzyDB 的新版本,其中包含与 Spring Data Arora 发布版一致的 Spring Data 绑定。祝贺你们!
  4. 您是否尝试过 Thymeleaf,这个对 HTML5 和 Spring MVC 友好的模板引擎?如果您想了解更多,您可能会喜欢这个名为 Thymeleaf,它会混合吗? 的演示。
  5. David Welch 编写了一个 Spring Data Mongo 的快速演示 并公开了他的工作。他发推表示,他用 4 个类和 1 个 pom.xml 在 8 分钟内就得到了一个可工作的演示。做得好!
  6. 查看 Ramnivas Laddad 在 SpringOne2GX 上精彩的 CloudFoundry 架构演讲,现已在 SpringSource YouTube 频道 SpringSourceDev 上直播。
  7. Spring HATEOAS 负责人 Oliver Gierke 转发了这篇帖子 我如何向我的妻子解释 REST,乍一看似乎只是一个人试图向没有相同技术背景的人解释一个相当深厚的技术概念,但很快就变成了对 REST 适用性(我认为非常有见地)的探讨。如果您想将您的 REST 技能提升到一个新的水平,请查看 Spring HATEOAS
  8. 我个人非常喜欢新的 Java 配置 API,包括最近发布的和目前可用的预览版本。我上面展示了一个非常简单的 Spring Batch API 示例。我还花时间 撰写了关于即将发布的 1.1.0.M2 版本中强大的 Spring Social Java 配置 API
  9. 您可以使用 Spring 来执行一种预条件检查,通过使用 @Required 注解强制在运行时要求一个属性必须是非 null 值,否则 Spring 将中止对象的创建。这有助于避免任何潜在的 NullPointerException。这篇 JavaBeat 的文章很好地解释了如何使用 @Required
  10. how to do in java 博客有一篇精彩的文章,介绍了如何在 Spring Security 3 中 创建自定义 UserDetailsService
  11. JavaCodeGeeks 博客有一篇精彩的文章,介绍了如何使用 Spring MVC 创建 RESTful 服务
  12. Brian's Java Blog 有一篇关于如何使用 Spring AOP 的 注解和 XML 为中心配置选项 的精彩博文。

介绍 Spring XD

工程 | Mark Fisher | 2013 年 4 月 23 日 | ...

今天我们正式启动了一项名为 Spring XD 的新计划,其主题是“应对大数据复杂性”1

Spring Data 团队在过去几年中一直非常忙碌,不仅为 NoSQL 数据存储提供支持,还简化了 Hadoop 的开发体验。通过创建 Spring for Apache Hadoop 项目,我们通过提供丰富的配置模型和 Hadoop 生态系统项目(如 Hive 和 Pig)的一致编程模型,使开发 Hadoop 应用程序变得更容易。正如 Spring 用户所期望的那样,人们可以

  1. 将 MapReduce 作业配置并作为容器管理对象运行。
  2. 使用 HDFS、HBase、Pig 和 Hive 的模板辅助类,从应用程序中删除样板代码。

Spring…

本周 Spring - 2013年4月16日

工程 | Josh Long | 2013年4月16日 | ...

欢迎阅读本期《本周 Spring》!这对于 Pivotal 的 Spring 来说是激动人心的一周,您可以在重新安排的 Pivotal 启动活动(4月24日)上听到更多信息。

  1. 如果您阅读速度太快,Pivotal 已将启动活动重新安排到 4 月 24 日。在此注册!
  2. Arjen Poutsma 宣布 Spring Web Services 2.1.3.RELEASE。新版本主要包含错误修复,完整详情请查看 发行说明
  3. 不要错过即将举行的 Donald Miner 和 Mark Pollack 的在线研讨会,讨论 Pivotal HD 和 Spring Hadoop,这是一个适合对 Pivotal HD 感兴趣的人的入门级在线研讨会。
  4. YouTube 上提供新高清 SpringOne2GX 重播:Cloud Foundry 架构NewSQL 中的有效设计模式
  5. 前几天 Reddit 上有一篇精彩的文章,用 Martin Lawrence 的方式解释了 REST 和 SOAP 的区别。这与 Spring *毫无关系*,但非常有趣,值得分享。
      Spring, of course, has an amazing REST stack and I highly encourage people to check out how to build consolidated, streamlined REST services with Spring! Moving on... :) 
    
  6. James Rossiter 撰写了一篇关于如何使用 Spring InitBinder 来解决类型不匹配并在 Spring MVC 的 POST 请求中绑定异常到 Controller Actions 的精彩文章。
  7. @olivergierke 在 Twitter 上提出了一个很好的观点:将 JTA 1.2 JSR javax.transaction.Transactional 注解添加到 Spring 需要多少代码?几乎不需要!这里的大部分代码只是单元测试。除此之外,这只是 JTA 注解到 Spring 已支持引擎的简单映射,该引擎目前还支持原生的 Spring @Transactional@javax.ejb.TransactionAttribute 注解。
  8. 您是否正在研究 Gradle 并希望快速入门 Spring?Giancarlo Frison 整理了一篇关于使用 Spring 应用程序的 Gradle 构建引导程序 的精彩文章。
  9. Eugen Paraschiv 整理了一篇关于如何使用 RestTemplate 进行 HTTP BASIC 认证 的精彩文章。
  10. Spring 长久以来一直支持一个名为 org.springframework.util.StopWatch 的实用类,可用于测量方法调用的执行时间。Javarevisited 博客有一篇
      <a href="http://www.stumbleupon.com/su/1rKtfP/javarevisited.blogspot.com.au/2012/04/how-to-measure-elapsed-execution-time.html">nice post on how to use the <CODE>StopWatch</code> class</a>.
    </LI>
    
  11. 这篇博文相当老了,但我刚偶然发现它,并认为这是一份关于 Spring 中 面向切面编程 (AOP) 的精心构思的演示文稿

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有