本周 Spring - 2013 年 4 月 9 日

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

欢迎收看本期的《本周 Spring》!一如既往,我们有很多内容要介绍,让我们开始吧!

  1. SpringSource 首席技术官 Adrian Colyer 概述了 SpringSource 和 Spring 项目在 Pivotal Initiative 下的未来方向和发展势头。Pivotal Initiative 是从 EMC 分拆出来的一家新公司,其业务涵盖 SpringSource、Cloud Foundry 和 GreenPlum 等。如果你想了解 Spring 在这项新计划中的——咳咳——Pivotal 作用,这绝对是值得一读的文章!
    </LI>  
    <LI> Spring Batch lead Michael Minella has <A href="http://www.springsource.org/node/9666"> announced that Spring Batch 2.2.0.RC1 is now available</a>.
    	The new release includes preliminary support for Spring Data, Java configuration support, non-identifying job parameters 
    	and numerous fixes and polishes. This release is amazing, and definitely worth a look. I, personally, <EM>love</EM> the Java configuration API that's
    	been surfaced. You don't need to write another…

Spring 和 Pivotal Initiative 的开源

工程 | Adrian Colyer | 2013年4月3日 | ...

到现在您可能已经听说过 Pivotal。我想花点时间在这里解释一下这对于 Spring 意味着什么,并向您介绍我们2013年的一些计划。

如果您错过了,这里是 Pivotal 的基本背景:由 Paul Maritz 领导,该倡议汇集了 EMC 和 VMware 的关键人员和项目,旨在 将“消费级”技术带入企业。我们看到新一代应用程序正在兴起,它们由新的数据结构驱动,并将在客户的身份、位置和实时活动背景下与客户互动并为其提供服务……

本周 Spring - 2013 年 4 月 2 日

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

欢迎收看本期的《本周 Spring》!我刚从 Devoxx UKDevoxx France 回来,在那里我非常高兴地与来自各行各业的 Spring 用户开发者进行了交流。我还应邀在伦敦 Skills Matter 发表了关于“使用 Spring 构建 Web 应用程序”的演讲。感谢 Skills Matter、伦敦 Spring 用户组以及了不起的 Rob Harrop 的邀请,这真是一次愉快的经历!如果你感兴趣,该场讲座的视频可以在线观看

  1. 立即注册,以超级早鸟价参加 2013 年 9 月 9 日至 12 日在加利福尼亚州圣克拉拉举行的 SpringOne 2GX 2013 大会!
  2. Gary Russell 宣布 Spring AMQP 1.2.0.M1 现已发布
  3. <LI> The Cujojs team has announced that <CODE>rest.js</CODE> is <a href="http://cujojs.com/">now part of Cujo.js</a>
    <a href…

本周 Spring - 2013 年 3 月 26 日

工程 | Josh Long | 2013 年 3 月 26 日 | ...

欢迎收看本期的《本周 Spring》!本周我在寒冷(brrr!)的英国伦敦和法国巴黎参加 Devoxx UKDevoxx FR 大会,并且——今晚——我在伦敦 Spring 用户组于Skills Matter 发表了演讲。这是一次非常愉快的体验。如果你在法国并且想谈论 Spring,请随时联系我

  1. CujoJS 团队宣布 When.js 2.0 现已发布
  2. 我发现了一些介绍 Spring Integration 的好文章。这是第一部分第二部分
     These posts are very thorough and well worth a read! </LI>
     <LI>New SpringOne2GX replays now available in HD on YouTube: <a href="http://www.springsource.org/node/4302">What's New in Spring Integration 2.2 and Spring Integration, Batch, &amp; Data Lightning Talks</a>.</LI>
     <LI> Did you guys miss SpringOne2GX 2012? Don't fret, Oleg Zhurakousky and Arjen Poutsma's talk introducing <a href="https://#/nquWxe7L3u">how to use Spring with Scala is now available on InfoQ</a>. </LI>
     <LI>Michael Isvy's been hard at work refactoring the code 
    	 of the canonical Spring PetClinic reference…

Spring Petclinic已上线Github!

工程 | Michael Isvy | 2013年3月21日 | ...

我们很高兴地宣布,Spring Petclinic示例应用程序已重构。

源代码现已在github上可用。这是新应用程序的截图:

以下是新架构的概述

Spring, Spring, Spring

我们使用了以下Spring特性

  • 使用注解进行依赖注入
  • 使用jdbc (JdbcTemplate)、JPA或Spring Data JPA (repository层) 进行数据访问集成。您可以通过在web.xml或JUnit测试中设置相应的bean profile来选择要使用的实现。
  • 使用@Transactional进行事务处理(服务层)
  • 使用@Cacheable和ehcache作为缓存实现进行缓存(服务层)
  • 面向切面编程(监控每个Repository方法被调用的次数)
  • Spring MVC:使用Bean Validation (JSR-303) 进行表单验证
  • Spring MVC:使用ContentNegotiatingViewResolver进行内容协商(html、xml或atom)。
  • Spring MVC:使用SimpleMappingExceptionResolver进行异常处理
  • Spring MVC:使用Spring MVC测试框架

 

我们充满活力的社区

我们获得了社区中许多专家的贡献(包括几个开源项目的负责人)。

 

Thymeleaf

如果您还没有听说过,Thymeleaf可以被视为JSP的替代品。它将自己定义为XML / XHTML / HTML5模板引擎。

它基于一些普通的HTML文件,带有一些命名空间的魔法。

Thymeleaf项目的Daniel和Soraya创建了一个Spring-Petclinic分支,该分支使用Thymeleaf代替JSP。他们在这篇博客文章中记录了迁移步骤:http://www.thymeleaf.org/petclinic.html

Spring Petclinic的Thymeleaf分支可在此处获取:https://github.com/thymeleaf/thymeleafexamples-petclinic

了解更多关于Thymeleaf的信息:http://www.thymeleaf.org

在twitter上关注Thymeleaf:https://twitter.com/thymeleaf

 

Dandelion

Dandelion提供了一组标签库,您可以将其与JSP或Thymeleaf一起使用。

我们已在Spring-Petclinic内部使用它来处理DataTables。它基于jQuery DataTables和Bootstrap生成表格。

你可以这样做


<datatables:table data="${ownerList}" id="dataTable"  theme="bootstrap2" export="pdf">
 <datatables:column title="Name" property="name" sortable="true" />
 <datatables:column title="Address" property="address" sortable="true" />
</datatables:table>

输出的html表格看起来像这样

Dandelion在Spring Petclinic的主分支中使用。

Dandelion项目的Thibault Duchateau撰写了一篇精彩的博客文章,描述了Spring Petclinic应用程序的迁移

了解更多关于Dandelion的信息:http://dandelion.github.com/

在twitter上关注他们:https://twitter.com/dandelion_proj

 

Maven还是Gradle?

默认情况下,Spring Petclinic使用Maven,因为它是Java应用程序最常见的选择。虽然Spring Petclinic与大多数实际应用程序相比相当小,但其Maven pom.xml文件已经非常冗长。

来自Thoughtworks China的Li Yanhui非常友好地将Spring Petclinic迁移到Gradle。这是一种并排比较Maven和Gradle的好方法。build.gradle配置文件确实更易于理解。它目前包含143行(而Maven POM为543行)。

您可以在此处浏览基于Gradle的Spring Petclinic版本:https://github.com/whimet/spring-petclinic 感谢他们,我们能够识别出Spring Petclinic内部一些存在代码重复和缺乏自动化测试的地方。

 

性能测试:让我们扩展!

是否有可能在单个服务器实例上将当前的Spring Petclinic扩展到每秒1000个请求?Ippon Technologies的Julien Dubois就此主题撰写了一系列五篇精彩的博客文章。

它回答了以下问题: - 我应该依赖会话上下文吗?(第二部分) - 我应该使用哪个Apache Tomcat连接器?(第二部分) - 我应该使用哪个数据库连接池?(第三部分) - JDBC是否比JPA或Spring Data JPA更快?( 第四部分) - 使用OpenSessionInViewFilter有什么优点?( 第四部分)

 

参考文献

GitHub上的Spring Petclinic Cloud Foundry上的Spring Petclinic Petclinic + Thymeleaf Petclinic + Gradle

 

Spring Data GemFire 1.3.0 发布

工程 | David Turanski | 2013 年 3 月 14 日 | ...

我很高兴地宣布 Spring Data GemFire 1.3.0 的 GA 版本发布。除了许多小的错误修复和增强之外,此版本还包含一些值得注意的新功能,使使用 GemFire 编写 Java 应用程序变得更加容易

函数注解支持

GemFire 通过提供远程函数执行框架,实现了“将代码带到数据”的能力。秉承 Spring 的核心价值,Spring Data GemFire 隐藏了注册和执行远程函数所需的样板代码,让您可以编写 POJO 并专注于应用程序逻辑。有关详细信息,请参阅 Spring Data GemFire 参考指南中的函数执行注解支持章节。

简化与 GemFire 数据源的连接

GemFire 提供了许多选项来调整其连接池的性能,以及配置本地数据如何管理和同步。Spring Data GemFire 命名空间支持所有这些选项,但是许多应用程序是客户端,只需对 GemFire 数据网格进行读/写访问。对于此类应用程序,现在可以作为客户端连接到 GemFire,而无需显式配置池或客户端区域

 <gfe-data:datasource>
        <gfe-data:locator host="${host}" port="${port}"/>
 </gfe-data:datasource>

上述配置将创建一个客户端缓存、池以及服务器上所有可用区域的代理客户端区域,并提供合理的默认值,并将它们注册为 Spring bean。

JSON 支持

GemFire 7.0 提供了存储 JSON 并具有完整查询支持的能力。通常,这需要应用程序使用 JSONFormatter 将 GemFire 的内部格式转换为 JSON 字符串,反之亦然。Spring Data GemFire 现在提供了一个选项,可以对选定的区域自动执行此转换,以及使用 Jackson 的 ObjectMapper 从 Object 到 JSON 的单向转换。此功能使用 Spring AOP 拦截 Region 和 GemFireTemplate 上的适当操作。有关详细信息,请参阅 Spring Data GemFire 参考指南

STS 3.2.0 的性能改进

工程 | Martin Lippert | 2013年3月12日 | ...

Spring Tool Suite (3.2.0) 的最新版本在许多不同领域都包含了大量性能改进。我们不仅采用了 Eclipse Juno SR2 维护版本中的最新改进(该版本修复了 Eclipse 4 平台 UI 的大量性能问题),还对 STS 许多内部组件的性能进行了优化,特别是针对 Java 编辑和 Spring 项目的构建时间。

为了展示这些改进,这里有一个快速的屏幕录像,并排展示了 STS 3.1.0 和 3.2.0。

还有更多工作要做,我们将继续为计划于 2013 年 7 月发布的 STS 3.3.0 版本努力改进这些领域。如果你想了解更多细节,关注后续改进,提交更多信息,以及/或报告特定的性能或内存问题,请关注/使用此 JIRA 票据:https://issuetracker.springsource.com/browse/STS-3054

本周 Spring - 2013 年 3 月 12 日

工程 | Josh Long | 2013年3月12日 | ...

欢迎来到又一期《本周 Spring》!本周,有大量的 Spring Tool Suite 新闻,所以请务必关注。

<A href="http://www.springsource.org/sts"> the new release</a> and try it out. 

One last reminder: be sure to join me Thursday for a <a href="http://www.springsource.org/node/4033">webinar introducing Spring's REST and mobile support</a> at 3:00PM GMT (for Europeans) and 10:00AM PST (for North America). 
 
If you've wanted to learn how to build mobile applications for your Spring-based backend services, then this talk is for you. We'll look
at Spring's rich support for REST,
Android and mobile platforms, in general. 

  1. Jonathan Brisbin 宣布 Spring Data REST 1.1.0.M1 已发布。新版本基本上是从头开始重写的。在新版本中,它支持所有的仓库,包括基于 MongoDB 和 GemFire 的仓库。
  2. Martin Lippert 宣布 Spring Tool Suite 和 Groovy/Grails Tool Suite 3.2.0 已发布。新版本比前一版本快得多,并包含了对 Eclipse Juno SR2 的更新支持、OSX 上的高分辨率显示器,以及与包括 Spring Integration 2.2 在内的各种 Spring 项目的更新兼容性。
  3. Rob Winch 宣布 Spring Security SAML 1.0.0.RC2 已发布。Spring Security SAML 是一个第三方贡献,它为 Spring Security 提供了 SAML 支持。
  4. Spring Integration 2.2.2 现已可用!新版本包含各种重要的错误修复。
  5. 我将于 2013 年 3 月 14 日举办一场网络研讨会 - 使用 Spring 进行多客户端开发!加入我,了解 REST、OAuth、Spring MVC、Spring Android 等更多内容!
  6. 与 Damien Dallimore 和 David Turanski 一起参加网络研讨会,他们将介绍 网络研讨会:为 Splunk 扩展 Spring Integration - 2013 年 3 月 28 日
  7. 新的 SpringOne2GX 回放现已在 YouTube 上提供高清版本:使用开放技术解决消息传递挑战,Spring Integration 和 Spring Batch 入门
  8. @SpringSource 正在发起一场(快速)赠品活动
  9. Spring 和 Groovy/Grails Tool Suite 负责人 Martin Lippert 制作了一个视频,比较了 3.1 版本和 3.2 版本 Tool Suite 的速度
  10. 说到 Spring Tool Suite,您是否对节省 15% 的 SpringSource Tool Suite 培训费用感兴趣?
  11. Yuan Ji 发表了一篇关于如何使用 Spring Data MongoDB 持久化 Spring Social 连接的出色文章。太棒了!我本来正准备卷起袖子自己写一个这样的实现!但这应该能为我节省一些工作。谢谢你,Yuan!
  12. Object Partners Inc. 博客发布了一段视频,介绍了 Spring Batch 2 以及如何将其与 Grails 集成。这非常酷!他们使用 Groovy DSL 而不是 Spring Batch 的原生 XML 格式来减少冗余。一个新的替代方案是 Spring Batch 2.2 中的 Java 配置支持。
  13. Petri Kainulainen 发表了一篇博文,介绍了 Spring Data SOLR 查询方法
  14. Ippon Technologies 博客发表了一篇关于性能调优 Spring Petclinic 示例应用程序的出色文章。
  15. Michael Simons 发表了一篇关于如何将流行的、面向组件的 Web 框架 Vaadin 与 Spring一起使用的文章。
  16.  Nicolas Frankel has a nice post 
     <a href="http://blog.frankel.ch…

本周 Spring - 2013 年 3 月 5 日

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

欢迎回来,继续收看本期《本周 Spring 动态》。

我们有很多内容要介绍,所以让我们开始吧!

  1. 我将于 2013 年 3 月 14 日举办一场网络研讨会 - 使用 Spring 进行多客户端开发!加入我,了解 REST、OAuth、Spring MVC、Spring Android 等更多内容!
  2. 与 Damien Dallimore 和 David Turanski 一起参加网络研讨会,他们将介绍 网络研讨会:为 Splunk 扩展 Spring Integration - 2013 年 3 月 28 日
  3. 新的 SpringOne2GX 回放现已在 YouTube 上提供高清版本:Spring Data Repositories:深入探讨与级联介绍
  4. @SpringSource 正在发起一场(快速)赠品活动
  5. Spring Security 负责人兼黑客 Rob Winch 宣布了对 Spring Security 中基于 Java 的配置的初步支持。这是一个重要的里程碑。最近,我们看到了 Spring Social、Spring Batch 和——现在——Spring Security 所提供的 XML DSL 的 Java 配置替代方案。查看 Spring Security 的 Java 配置以了解更多详情。
  6. 我有幸访问了中国的阿里巴巴集团,他们在 Spring 方面做了一些令人惊叹的事情。在我的博客《中国规模下的 Spring:阿里巴巴集团》中了解更多。
  7. 前几天有人问了我这个问题,我觉得值得一提:在你的 Spring MVC @Controller 类处理方法中,确保 BindingResult 参数紧跟在模型命令参数之后,如下所示:
     <CODE>@RequestMapping(...) public String handleRequest( @ModelAttribute @Valid YourCustomPojo attempt, BindingResult result)</code>. 
    	 
    	 In this example, <CODE>handleRequest</Code> will validate the POJO (<CODE>YourCustomPojo</code>) - checking the POJO for JSR303-annotations and attempting to apply the constraints because the POJO is annotated with <CODE>@Valid</CODE> - and stash any errors  in the <CODE>BindingResult</code>, which it makes available if we ask for it.
    	 
    	 
    
  8. 说到使用 JSR 303 进行验证,我发现了一篇很棒的文章,来自 2010 年,我觉得值得包含。 这篇文章介绍了一个自定义注解,名为 @SpelAssert,它的作用类似于 JSR303 的 @ScriptAssert
  9. 你想将 Cloud Foundry 与 CloudBees 提供的持续集成功能结合使用吗?我们为你准备好了!Cloud Foundry 和 Cloud Bees 团队合作完成了集成,这里提供了分步介绍
  10. Alvaro Videla 介绍了并开源了他的 RabbitMQ 模拟器。RabbitMQ 模拟器是一个非常棒的可视化工具,用于演示 RabbitMQ 拓扑的工作原理。
  11. Gary Russell 宣布 Spring AMQP 1.1.4 现已发布
  12. Fstyle 博客有一篇关于如何使用 Spring MVC 测试模拟来单元测试 Spring Security 的有趣文章。
  13. 我们的朋友 Boris Lam 又回来了,这次带来了一篇关于如何集成 Spring Data、MongoDB 和 JavaServer Faces 的文章。
  14. Indika Prasad 在Programmer's Guide 博客上发布了一个教程,展示了如何在 Spring Security 中使用 Webdav 和密码加密
    </LI>
    <LI> The  <EM>Java J2EE SOA Key Points</EM…

Scripted 0.4 发布

工程 | Andy Clement | 2013 年 3 月 5 日 | ...

本周我们发布了专注于 JavaScript 的代码编辑器 0.4 版本。您可以在此处阅读有关 Scripted 背景的信息。

0.4 版本的完整发布说明在此处,但在这篇文章中,我将重点介绍一些更有趣的更改。

工具提示


Scripted 使用推理引擎来理解您的 JavaScript 代码。Scripted 0.3 提供了一些基本的工具提示,显示有关函数调用的推断信息。在 Scripted 0.4 中,这一点得到了进一步发展——不仅格式更好,而且现在任何发现的 jsdoc 也包含在工具提示中。在这里,您可以看到当您将鼠标悬停在函数调用上时将出现的工具提示


 

模板


模板支持已得到增强,您现在可以使用嵌入原始选择的文本扩展来替换选择。在第一张图片中,我们选择了一个函数调用并按下了 Ctrl/Cmd+Space

选择第一个模板完成时,编辑器内容变为


 

可扩展性


此版本的 Scripted 包含一个基本的插件机制。只需编写一个 .js 文件,将其放入正确的位置,它就会扩展 Scripted 的行为。插件 API 绝对还在开发中,但您已经可以实现一些有用的功能。例如,我们有保存时源转换器插件,执行诸如删除空格和添加版权消息等操作。有关插件系统的更多信息,请参见发布说明和 wiki 中的此处。基本上,插件开发涉及编写一个 AMD 模块,“require” API 部分,然后就可以开始了。

我们想到的一个关键用例是让您能够编写一个插件,为编辑器贡献新的注释(这些注释出现在左侧标尺中,并允许对编辑器文本进行样式设置)。这是一个非常简单的插件。它只是在您的代码中定位水果名称,并为它们添加注释。也许它不是_最_有用的插件,但它应该展示插件的关键部分是什么……

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅