本周 Spring - 2013年5月14日

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

欢迎来到另一期《本周 Spring》!本周宣布了一些相当令人兴奋的项目,如果您能相信的话,我们几乎已经用完了SpringOne 2012 回放内容!好在 SpringOne 2013 的议程网格很快就要上线了,所以我们可以展望未来。像往常一样,我们有很多内容要介绍,所以让我们开始吧!

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

  1. Jon Brisbin 宣布了 Reactor 项目。Reactor 项目旨在为 JVM 上的异步基于 IO 的应用程序提供坚实的基础,在此基础上,为 Grails 和 Spring 等技术提供集成是很自然的。Reactor 已经具有良好的多语言支持,支持 Groovy 和 Java(特别是即将推出的 Java 8 版本!)。一定要查看一下,如果您对这与其他异步技术相比如何有任何疑问,请查看评论部分!
  2. Spring Security 负责人Rob Winch 一直在努力增强 Spring Security 和 Spring Security OAuth Java 配置方案。他有一个Spring Security OAuth Java 配置 API 的第一个版本可用,我相信他会感谢对新 DSL 的任何反馈,所以一定要查看一下!干得好,Rob!
  3. **5月16日星期四与 POJOs in Action 的作者 Chris Richardson 举办网络研讨会**,主题是:分解应用程序以实现可部署性和可扩展性。立即注册!
  4. 5月28日星期二,加入 Broadleaf Commerce 的 Andre Azzolini 参加网络研讨会,他们将讨论他们的从 GWT 迁移到 SpringMVC 的经验教训
  5. Paul Chapman 在 SpringSource 博客上介绍了Spring MVC 中对内容协商的多样化支持
  6. Chris Harris 的演讲,Spring Data MongoDB 项目,来自 SpringOne2GX 2012,现在可以在 YouTube 上以高清格式观看!
  7. Lee Faus 的演讲,极致改造 - 应用程序版本,来自 SpringOne2GX 2012,现在可以在 YouTube 上以高清格式观看!
  8. *JIWHIZ* 博客和博主 Yuan Ji 共同撰写了一篇不错的文章,介绍了Spring 的 Java 配置支持
  9. 这篇文章 - 来自博主 Chris Wong 在 1 月份发表的一篇名为“JmsTemplate 不是邪恶的”的文章 - 解释了使用 Spring 的 CachingConnectionFactory 与原始 ConnectionFactory 的一些细微之处,然后,为了获得额外分数,介绍了一种显着加快ActiveMQ(特别是)速度的方法。
  10. HMKcode 博客有一篇很好的、详尽的文章介绍了如何使用jQuery-file-upload 插件与 Spring MVC
  11. 您是否查看过HATEOAS?HATEOAS 是一种设计模式,一种方法,用于构建更好的 RESTful Web 服务。Spring HATEOAS 使在 Spring MVC 之上做到这一点变得非常简单,并且Geraint Jones 的这篇博客很好地介绍了 Spring HATEAOS
  12. 博主 Alexey Zvolinskiy 回答了一个常见问题:如何将复选框绑定到在 Spring MVC 中来回发送到服务器的模型对象
  13. 我们的朋友@baeldung 维护着关于StackOverflow 上的 Spring的每日精彩文章 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(我的下一篇文章将详细介绍),但视图通常用于生成 HTML 等表示格式,用于传统的 Web 应用程序。
  • 实际上还有第三种可能性 - 一些应用程序需要两者兼顾,Spring MVC 可以轻松支持此类组合。我们将在最后回到这一点。

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

在三种情况下,我们需要知道要在 HTTP 响应中发送哪种类型的数据格式

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

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

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

本周 Spring - 2013年5月7日

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

欢迎来到 *史诗般的 Spring 周*!SpringOne 大会发布了许多新的会议,因此请访问网站并查看特色会议!我们将在 5 月底之前上线议程网格。

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 编写了一个小型示例,关于在接口上使用 @Transactional 和 Spring 的事务管理基础架构。干得好,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 发布列车的名称都来自计算机科学领域的一些有影响力的人物。新版本以 查尔斯·巴贝奇 命名。
  5. Adam Shook 和 Mark Pollack 博士的网络研讨会,Hadoop、Pivotal HD 和用于 Apache Hadoop 的 Spring,现已在线提供。
  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 的 Nokia 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 月初发布,随后 3.3.0 版本将于 2013 年 7 月初发布——紧随 Eclipse Kepler 版本之后。

要下载发行版,请访问:

此处可以找到详细的新增功能说明:STS/GGTS 3.3.0.M1 新功能

祝您愉快!

本周 Spring 动态 - 2013年4月23日

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

欢迎回到另一期《本周 Spring 动态》!在旧金山,我们正在经历春天典型的生命和美丽天气的最初迹象。这也恰逢其时,因为在 Pivotal 开源社区(包括 Cloud FoundrySpringSource)中,随着我们朝着 4 月 24 日 Pivotal 计划发布 迈进,事情繁忙异常。届时见!

事不宜迟,让我们进入本周的综述

  1. 你们看过 Spring Batch 2.2.0.RC1 中令人惊叹的 Java 配置支持 吗?我刚刚链接给你的代码演示了一个完整的可运行 Spring Batch 作业,它读取一个 .csv 文件,然后将记录写入数据源,所有这些都在类中配置,完全在 Java 中。这演示了 2.2.0 中的 @EnableBatchProcessing 注解。查看一下
  2. 高清版SpringOne2GX回放视频现已在YouTube上线:使用Spring和vFabric实现领域驱动设计Cloud Foundry上的批量处理和集成,以及额外的一场讲座:理解Java垃圾回收及应对方法
  3. 开源项目FuzzyDB在推特上宣布他们发布了新版本,其中包含与Spring Data Arora发行版系列一致的Spring Data绑定。祝贺各位!
  4. 您尝试过Thymeleaf(一款HTML5和Spring MVC友好的模板引擎)吗?如果您想学习更多内容,您可能会喜欢这个名为Thymeleaf,它能混合吗?的演示文稿。
  5. David Welch 制作了一个简短的Spring Data Mongo演示并公开了代码。他在推特上说他用8分钟、4个类和一个pom.xml就完成了可运行的演示。干得好!
  6. 查看Ramnivas Laddad在SpringOne2GX上精彩的演讲Cloud Foundry架构,该演讲已在SpringSource YouTube频道SpringSourceDev上直播。
  7. Spring HATEOAS负责人Oliver Gierke在推特上分享了这篇博文链接:"我如何向我妻子解释REST"。乍一看,这似乎只是一个人试图向缺乏相同技术背景的人解释一个相当深奥的技术概念,但它很快就变成了(我认为是非常有见地的)对REST适用性的探讨。如果您想将您的REST技能提升到一个新的水平,请查看Spring HATEOAS
  8. 我个人非常喜欢新的Java配置API,包括最近发布的和当前可用的预览版本。我在上面展示了一个Spring Batch API的非常简单的示例。上周我还花了一些时间撰写关于功能强大的Spring Social Java配置API的文章,该API即将在1.1.0.M2版本中发布。
  9. 您可以使用@Required注解让Spring执行一种预先条件检查,以在运行时强制属性满足非null值的要求,否则Spring将中止对象的构建。这有助于避免任何静默的NullPointerException。这篇JavaBeat博文很好地解释了如何使用@Required
  10. 名为“如何在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. 高清版SpringOne2GX回放视频现已在YouTube上线:Cloud Foundry架构新SQL中的有效设计模式
  5. 前几天Reddit上有一篇很棒的帖子,用马丁·劳伦斯来解释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绑定到控制器操作。
  7. @olivergierke在Twitter上提出了一个很好的观点:在Spring中添加JTA 1.2 JSR javax.transaction.Transactional注解需要多少代码?几乎没有!这里的大部分代码只是单元测试。否则,这只是一个简单的JTA注解到Spring已支持的引擎的映射,该引擎目前也支持本机的Spring @Transactional@javax.ejb.TransactionAttribute注解。
  8. 您正在研究Gradle并想快速入门Spring吗?Giancarlo Frison编写了一篇不错的文章,其中包含一个可用于Spring应用程序的引导Gradle构建
  9. Eugen Paraschiv编写了一篇不错的文章,介绍了如何使用RestTemplate进行HTTP基本身份验证
  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社区中所有即将举行的活动。

查看全部