Pivotal Initiative 中的 Spring 和开源

工程 | 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…

网络研讨会重播:为 Splunk 扩展 Spring Integration

新闻 | Pieter Humphrey | 2013年4月1日 | ...

加入 David Turanski (SpringSource) 和 Damien Dallimore (Splunk),一起讨论和演示 Splunk 与 Spring Integration。Spring Integration 开箱即用地提供了许多适配器,支持各种传输方式,如 JMS、File、HTTP、Web Services 和 Mail。他们将介绍 Splunk 通道适配器,这是 Spring Integration 可用的开箱即用适配器中的新成员,它允许数据流经 Spring Integration 与 Splunk 正在接收或查询的数据进行交互。

对于可能不熟悉 Splunk 的人来说,Splunk 收集、索引并利用机器生成的大数据,以便您可以监控、搜索、分析、可视化并对大量的实时和历史机器数据流采取行动。

演示源码位于
https://github.com/damiendallimore/spring-integration-splunk-webex-demo

关于讲师

Damien Dallimore

Damien Dallimore

Damien 是 Splunk 的第一位开发者布道师,他在那里与开发者社区合作,利用 Splunk 的 SDK 和应用框架在 Splunk 之上构建大数据应用。他是一位热情的 JVM 粉丝,对新一代的替代 JVM 语言特别感兴趣,并且认为日志记录实际上很酷。在加入 Splunk 之前,Damien 扮演过许多不同的技术角色,在全球各种行业,主要在企业 Java 领域,进行编码、黑客攻击、工程设计和架构软件及解决方案,以此支付他的房贷。他是一个狂热的全黑队橄榄球支持者,喜欢潜水和高尔夫,并且在蓝调即兴演奏中能自如地弹奏吉他。

更多关于 Damien »

 

David Turanski

David Turanski

David Turanski 是 VMWare 旗下 SpringSource 的一名高级软件工程师。David 是 Spring Data 团队的成员,也是 Spring Data GemFire 项目的负责人。他还是 Spring Integration 项目的提交者。David 在担任开发者、架构师和顾问方面拥有丰富的经验,服务于各种行业。此外,他还培训了数百名开发者如何有效地使用 Spring Framework。

更多关于 David »

Rest.js 0.9 发布

发布 | Jeremy Grelle | 2013年3月28日 | ...

亲爱的 Spring 社区,

今天我们很高兴地宣布 rest.js 现在已成为 Cujo.js 的一部分,并且 rest.js 0.9 版本已发布。

https://github.com/cujojs/rest

rest.js 是一个 RESTful HTTP 客户端。它远远超出了开发者在其他框架中习惯的典型 XMLHttpRequest 抽象。rest.js 构建于可组合的拦截器之上,这些拦截器可以逐步为客户端添加新功能。配置好的客户端是防篡改的,可以在应用程序内部安全地共享。如果应用程序的某个部分需要特定行为,它可以在通用…

本周 Spring 新闻 - 2013年3月26日

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

欢迎来到新一期的本周 Spring 新闻!这周我来到了寒冷的(呜呜!)英国伦敦和法国巴黎,参加 Devoxx UK Devoxx FR,并且 - 今晚 - 我在 Skills Matter 为伦敦 Spring 用户组做了一场演讲。这真是一次愉快的经历。如果你在法国想讨论 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 layer) 的数据访问集成。您可以通过在 web.xml 或某个 JUnit 测试中设置相应的 bean profile 来选择使用哪种实现。
  • 使用 @Transactional 的事务 (service layer)
  • 使用 @Cacheable 并以 ehcache 作为缓存实现的缓存 (service layer)
  • 面向切面编程 (用于监控每个 Repository 方法被调用了多少次)
  • Spring MVC: 使用 Bean Validation (JSR-303) 进行表单验证
  • Spring MVC: 使用 ContentNegotiatingViewResolver 进行内容协商 (html, xml 或 atom)。
  • Spring MVC: 使用 SimpleMappingExceptionResolver 进行异常处理
  • Spring MVC: 使用 Spring MVC Test Framework

 

我们充满活力的社区

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

 

Thymeleaf

如果你还没听说过 Thymeleaf,它可以被看作是 JSP 的替代品。它将自己定义为一个  XML / XHTML / HTML5 模板引擎。

它基于一些普通的 HTML 文件,并加入了一点命名空间的魔法。

Thymeleaf 项目的 Daniel 和 Soraya 创建了一个使用 Thymeleaf 而非 JSP 的 Spring-Petclinic 分支。他们在这篇博客文章中记录了迁移步骤: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 中国的 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 就此主题撰写了 一个精彩的五部分系列博客文章。

它回答了以下问题: - 我应该依赖 session context 吗?(第 2 部分) - 我应该使用哪个 Apache Tomcat 连接器?(第 2 部分) - 我应该使用哪个数据库连接池?(第 3 部分) - JDBC 是否比 JPA 或 Spring Data JPA 更快?( 第 4 部分) - 使用 OpenSessionInViewFilter 有哪些优点?( 第 4 部分)

 

参考

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

 

When.js 2.0.0 发布

发布 | Jeremy Grelle | 2013年3月20日 | ...

亲爱的 Spring 社区,

我们很高兴地宣布 when.js 2.0.0 版本发布。

When.js 是 cujojs 的轻量级 Promises/A+ 和 when() 实现,并且驱动了 wire.js(cujojs 的 IOC 容器)的异步核心。它还提供了其他几个有用的 Promise 相关概念,例如连接多个 promise、映射和归约 promise 集合以及定时 promise。

这个主要版本带来了完整的 Promises/A+ 合规性以及异步 promise 解析。它还包含一些新功能,包括一个新的 when/keys 模块,用于处理对象键。

请查看 cujojs 讨论组 获取更多详情,并查看完整的更新日志以获取更多信息和新功能文档的直接链接。

网络研讨会重播:使用 Spring 进行多客户端开发

新闻 | Pieter Humphrey | 2013年3月18日 | ...

没有哪个应用程序是一座孤岛,这一点在今天比以往任何时候都更加明显,因为应用程序的影响范围正在扩展到人们的口袋、桌面、平板电脑、电视、蓝光播放器和汽车。现代开发者应该如何支持这些众多平台?在本讲座中,加入 Josh Long,学习 Spring 如何通过(有时是 Spring Security OAuth 保护的)通过 Spring MVC 暴露的 RESTful 服务、HTML5 以及借助 Spring Mobile 实现的客户端特定渲染,以及通过 Spring Android 对 Android 的强大原生支持来扩展您的应用范围。


关于讲师

Josh Long

Josh Long

Josh Long 是 Spring 的开发者布道师。Josh 是 Apress 出版的《Spring Recipes, 2nd Edition》的主要作者,也是 SpringSource 的提交者和贡献者。当他不写代码时,可以在当地的 Java 用户组或咖啡店找到他。Josh 喜欢那些突破技术边界的解决方案。他的兴趣包括可扩展性、BPM、网格处理、移动计算以及所谓的“智能”系统。他在 blog.springsource.orgjoshlong.com 上写博客,并在 Twitter 上可以找到他:@starbuxman

更多关于 Josh »

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 参考指南

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅