本周 Spring 焦点:2011 年 6 月 21 日

工程 | Josh Long | 2011 年 6 月 22 日 | ...

欢迎回到又一篇《本周 Spring 焦点》。SpringSource 本周在圣何塞 JAX 大会全力以赴,七月份我们将参加 OSCON 大会。这些活动是与用户群建立联系的绝佳途径。像往常一样,我们本周有很多不错的内容要介绍,所以让我们开始吧!

          <LI>  There has been loads of interest and discussion surrounding last week's <a href="http://blog.springsource.com/2011/06/09/spring-framework-3-1-m2-released/">Spring 3.1 second milestone</a>.  Sam Brannen writes about the <a href="http://blog.springsource.com/2011/06/21/spring-3-1-m…

Spring 3.1 M2:使用 @Configuration 类和 Profiles 进行测试

工程 | Sam Brannen | 2011 年 6 月 21 日 | ...

正如 Jürgen Höller 在宣布 Spring 3.1 M2 版本发布的帖子中提到的,Spring TestContext 框架(*)已经过大修,为 @Configuration 类和环境 profile 提供了第一等的测试支持。

在这篇文章中,我将首先通过一些示例向您介绍这些新的测试特性。然后我将介绍 TestContext 框架中一些新的扩展点,正是这些扩展点使这些新特性成为可能。

      请注意:这是我在公司博客 www.swiftmind.com 上的交叉发布。

背景

在 Spring 2.5 中,我们引入了 Spring TestContext Framework,它提供了注解驱动的集成测试支持,可与 JUnit 或 TestNG 一起使用。本博客中的示例将重点介绍基于 JUnit 的测试,但此处使用的所有特性也适用于 TestNG。

其核心是,TestContext 框架允许您使用 @ContextConfiguration 注解测试类,以指定用于加载测试的 ApplicationContext 的配置文件。默认情况下,ApplicationContext 是使用 GenericXmlContextLoader 加载的,它从 XML Spring 配置文件加载上下文。然后,您可以通过使用 @Autowired@Resource@Inject 注解测试类中的字段来访问 ApplicationContext 中的 Bean…

定义虚拟化和云环境下的 Java 未来

工程 | Rod Johnson | 2011 年 6 月 14 日 | ...

今天,我自豪地宣布我们的 VMware vFabric™ 应用平台版本 5,该平台定义了云和虚拟化执行环境下的企业级 Java 未来。vFabric 通过提供现代编程模型与下一代平台服务相结合,为新型现代化云架构开辟了道路。这条道路没有被前代技术的冗余和复杂性所覆盖。借助 vFabric 5,VMware 确保企业级 Java 已准备好迎接未来高要求、数据密集型、大规模可扩展应用的挑战。

vFabric 5 继续为运行您的 Spring 应用提供最佳环境,它包含 vFabric tc Server,并通过 vFabric Hyperic 提供令人难以置信的智能监控和管理生产解决方案的能力。该平台也正面应对了云计算的技术挑战,支持新的数据管理方法,通过我们的 vFabric GemFireRabbitMQ 使应用能够在弹性、地理分布式云架构中扩展…

本周 Spring 焦点:2011 年 6 月 14 日

工程 | Josh Long | 2011 年 6 月 14 日 | ...

欢迎回到另一期《本周 Spring 焦点》,真是令人难忘的一周!上周见证了 Spring 3.1 M2 vFabric 5 的发布!有很多令人兴奋的内容要讨论,还有一般的社区新闻,所以让我们开始吧!

  1. 今天,VMware 宣布发布 VMware vFabric 5,这是一个为云和虚拟化执行环境定义企业级 Java 未来的应用平台。vFabric 5 包含了 Spring 社区已经熟悉的许多技术,包括 tc ServerHypericGemFireRabbitMQ,但现在也增加了一些新技术。
    • Elastic Memory for Java (EM4J):tc Server 的一项新功能,它在应用服务器和底层虚拟机之间提供了全新的协调级别。EM4J 利用底层的 vSphere 虚拟化来克服 Java 静态内存堆的一些限制。
    • Spring Insight Operations:利用与 Spring Insight 项目相同的代码级跟踪技术,但将来自多个应用服务器的信息汇集到一个控制台中,提供汇总视图、向下钻取和历史比较,适用于生产系统。
    • SQLFirevFabric SQLFire 利用久经考验的 vFabric GemFire 底层技术,提供内存速度的数据和横向扩展能力,同时 vFabric SQLFire 为该服务添加了熟悉的标准 SQL 和 JDBC 接口。

    Rod Johnson 在他的最新博客中讨论了版本发布的所有细节。务必查看最新版本并试用。

  2. Spring 核心负责人 Juergen Hoeller 宣布 Spring 3.1.0 M2 已发布!漫长的等待终于结束,这是迈向 Spring 3.1 GA 的稳健一步!新版本与上一个版本一样功能丰富,包含众多主要新功能,包括(但绝不限于!)改进的 Java 配置支持,无需 XML 且无忧的基于 Servlet 3.0 的 Spring MVC 应用引导,用于 JPA 和 Hibernate 的新 Builder API,以及更多功能!请在此处查看发布公告,并通过您选择的构建依赖管理工具或下载页面获取文件。
  3. <LI> Hot on the heels of the Spring 3.1 release announcement, <a href="http://blog.springsource.com/2011/06/10/spring-3-1-m2-configuration-enhancements/">Chris Beams chimes in</a> on the much-improved Java-centric configuration model in Spring 3.1, M2, even as compared to M1! The features are really starting to come together to make this one of the smoothest, well arranged releases, yet! </LI> 
    
    <lI> 
    

    Spring 3.1 M2 代表了核心 Spring 和 Spring MVC 的显著改进! Rossen Stoyanchev 加入,介绍了众多(真的,你需要阅读详细的博客才能…

Spring 3.1 M2:Spring MVC 增强功能

工程 | Rossen Stoyanchev | 2011 年 6 月 13 日 | ...

本文重点介绍 Spring 3.1 M2 中 Spring MVC 的新功能。以下是主题:

  • MVC 命名空间的基于代码的等效项。
  • 可定制的 @MVC 处理。
  • 编程模型改进。

在此简要提醒一下,这里讨论的功能正在 Greenhouse 项目中实际应用。

Spring MVC 的基于代码的配置

正如 Chris 在上周五他的博客文章中指出的那样,XML 命名空间极大地减少了配置,但同时也降低了透明度和有时损失了灵活性。对于 MVC 命名空间来说也是如此,它支持许多定制,但并非所有可用的功能都支持。这意味着你要么使用它,要么放弃它。我们认为基于代码的配置对此有解决方案,并且提供了一条从简单到高级的路径。

让我们从这个简单、熟悉的片段开始:


<mvc:annotation-driven />

虽然对于使用注解控制器不是必需的,但 <mvc:annotation-driven> 执行了许多有用的操作——它检测 JSR-303(Bean Validation)实现的存​​在并使用它配置数据绑定,如果 Jackson JSON 库可用则添加 JSON 消息转换器,以及其他一些可以节省大量配置的操作。

现在让我们用基于代码的配置来匹配它:


@Configuration
@EnableWebMvc
public class WebConfig {
}

这里 @EnableWebMvc 导入一个 @Configuration 类,它与 <mvc:annotation-driven> 的功能相匹配。就这么简单。

下一步是在 <mvc:annotation-driven> 中使用属性,也许提供一个 FormattingConversionService,或者添加一个子元素来配置消息转换器,或者使用其他 MVC 命名空间元素,如 <mvc:interceptors><mvc:resources> 等。

让我们看看如何在基于代码的配置中完成所有这些操作:


@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        // register converters and formatters...
    }

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        // add message converters...
    }

    @Override
    public void configureInterceptors(InterceptorConfigurer configurer) {
        configurer.addInterceptor(new…

Spring 3.1 M2:配置增强功能

工程 | Chris Beams | 2011 年 6 月 10 日 | ...

正如 Juergen 在他昨天的文章中提到的,以及我在关于 3.1 M1 的我的之前文章中提到的那样,Spring 3.1 的主要主题之一是完成我们在 Spring 中实现基于代码配置的愿景。我们认为现代企业级 Java 应用应该能够选择 Java 或 XML 作为其配置的第一等选项。在这篇文章中,我们将看到 Spring 3.1 M2 如何帮助实现这一目标。

请注意,虽然基于 Java 的配置自 Spring 3.0 起就已可用,但在此版本中,它已与许多更多基于 XML 的功能相媲美,这些功能是在过去…

Spring Framework 3.1 M2 发布

工程 | Juergen Hoeller | 2011 年 6 月 9 日 | ...

Spring Framework 3.1 M2 已于本周发布,标志着 3.1 里程碑阶段的结束。我们现在正在进入候选发布阶段,准备在 7 月发布功能完整的 RC1,并在 9 月发布 GA 版本。

3.1 M2 完成了 2 月份在 3.1 M1 中开始的几个主要主题的工作:

  • 我们已经稳定了环境抽象环境 Profile 机制。如果您还没有尝试过,现在是探索它的绝佳时机!

  • 我们基于 Java 的应用配置方法从 M1 中的 @Feature 方法改为 M2 中常规 @Configuration 类上的 @Enable* 注解

  • 缓存抽象已进行修订,以提供最小化的缓存交互 SPI。我们的声明式缓存解决方案(@Cacheable 等)仍然在其之上。

本周 Spring 焦点:2011 年 6 月 7 日

工程 | Josh Long | 2011 年 6 月 8 日 | ...

欢迎回到另一个激动人心的回顾!本周一眨眼就过去了。说实话。在经历了上周欧洲 S2G 论坛的激动之后,又发生了这么多新事情。让人喘不过气来,但也感到兴奋。请继续阅读!

  1. Mark Fisher 和 Ramnivas Laddad 的网络研讨会《Spring:从零到云的 60 分钟之旅》已在线提供。
    本次网络研讨会以极快的速度带您了解 CloudFoundry 上 Spring、Spring Roo 和 Grails 的部分支持。快来看看吧!
    然而,在开始观看之前,请快速在 CloudFoundry.com 注册,以获取公共、免费测试版云服务的访问权限。如果您想查看代码并了解更多信息,请访问 CloudFoundry.org

  2. Jeremy Grelle,Spring BlazeDS 负责人兼通称的“Spring Web 专家”,宣布了 Spring Flex 项目的第一个候选发布版本。Spring Flex 项目将 Flex BlazeDS 中间件与 Spring 集成,提供了一种极其简单的方式来暴露 Spring Bean,以便 Flex 或 Adobe AIR Web 和桌面客户端可以消费。Spring Flex 项目还提供与 Spring Security 的集成,并为服务器端基于推送的消息传递提供紧密支持,无论是完全在 BlazeDS 中,还是通过 JMS 或 Spring Integration。是否曾想过通知登录到应用的用户服务器端发生了什么事情(Twitter 消息、新的 AMQP 消息、新的 XMPP 消息,等等…)?Spring Flex 使这变得轻松。
  3. Martin Lippert,SpringSource Tool Suite 团队负责人,接受了关于 SpringSource Tool Suite 2.6 最新和最重要功能的采访。他谈到了许多亮点,包括 STS 2.6 重构后的 Spring Webflow 可视化、Java 配置支持、云、基于代理的热加载以及后续计划。快来看看吧!
  4. Thomas Risberg 宣布了Spring Data Document 对 MongoDB 的支持,发布了 1.0.0.M3 版本。Spring Data Document 1.0.0.M3 中的更改和新特性包括大大改进的映射和转换支持。MappingMongoConverter 现在是 MongoTemplate 使用的默认转换器,SimpleMongoConverter 已被弃用并将被移除。默认集合名称的概念也已移除,MongoTemplate 的所有操作都基于作为操作目标的实体类所使用的集合名称。实体类使用的集合名称默认为以小写字母开头的类名,但可以使用 @Document 注解进行自定义。有关更多详细信息,请参阅更新日志
  5. Virgo 3.0.0 的里程碑 5 可供下载。这是一个重要的里程碑,它添加了显著的功能增强,将多个依赖项升级到最新版本,包括 Spring 3.0.5、Tomcat 7.0.12 和 Servlet 3.0,并修复了许多错误。完整详情请参见版本说明。EclipseRT 的 Virgo Web Server 是一个完全基于模块的 Java 应用服务器,旨在以高度灵活性和可靠性运行企业级 Java 应用和 Spring 支持的应用。它提供了一个简单而全面的平台来开发、部署和维护企业级 Java 应用。
  6. Marius Bogoevici——Spring Integration 的一名提交者——撰写了一篇精彩的文章,介绍了在 JBoss AS 中结合 Spring 使用 JPA EntityManager 的选项。这篇文章的主旨是应用服务器默认会自动创建一个 EntityManager,因此在 Spring 中可能不需要重新创建,只需注入现有引用即可。这种方法专门用于规避成熟应用服务器的自作主张的行为。如果您想在 Tomcat 中运行,那么 Spring 是配置 JPA EntityManager 的最简单方法。Marius 还解释了如何通过禁用应用服务器行为,完全由 Spring 来主导。这样做有诸多好处,通常性能更佳,并且可以将配置与应用本身而非服务器绑定。
  7. Matt Raible 发表了一篇关于其关于 Web 应用安全博客文章和截屏视频的后续文章。此前,他演示了如何在伪相同的方式下使用Spring SecurityApache ShiroJava EE 安全来保护 Web 应用,并适当地突出了它们之间的差异。这篇后续文章讨论了所有这三种技术,并提供了在 Spring MVC 应用中集成时启用程序化登录的比较。Spring Security 支持已经存在很长时间,并且可以在许多容器(不仅仅是兼容 Java EE 6 的容器)中轻松工作。很棒!
  8. 您是否曾涉足过其他基于 JVM 的语言?您是否了解过 Scala?在最近于加利福尼亚州帕洛阿尔托举行的 Scala Days 会议上,Cloud Foundry 团队宣布了 CloudFoundry.com 对 Scala 的新支持
  9. 如果您上周参加了在伦敦举行的 S2G 论坛,您将免费获得一份 Open Source Journal——一份纸质(并可免费下载 .PDF 版本)杂志。这份刊物在报道部分 Spring 框架技术方面做得非常出色。您可以从出版商的网站免费下载。在此查看第一期第二期。例如,第二期精彩地介绍了 Spring.NET(包括新的代码配置——与 Spring Java 的 Java 配置相对应的 .NET 版本),对 Spring.NET 的 RestTemplate 的探讨(与 Spring Java 的 RestTemplate 的一个很好的对应),以及使用 Spring Integration(和 Spring Web Services)轻松暴露 Web 服务的方法。如果您有支持 .PDF 的电子阅读器或平板电脑,这种格式尤其理想。快来看看吧!

Grails 2.0 倒计时:单元测试

工程 | Peter Ledbrook | 2011 年 6 月 7 日 | ...

Grails 1.4 的第一个里程碑版本 (现为 2.0) 现已发布,我们正处于迈向 1.4 2.0 最终版本的最后阶段。随着临近这一时刻,我将撰写一系列博客文章,介绍 2.0 版本带来的各种新特性和变化。我将从新的测试支持开始。

从一开始,Grails 就为开发者提供了三种级别的测试支持:单元测试、集成测试和功能测试。单元测试过去和现在都具有独立于 Grails 运行的优点,但它们通常需要以…的形式进行相当多的额外工作

一个用于构建 RabbitMQ AMQP 应用的简单 Groovy DSL

工程 | Jon Brisbin | 2011 年 6 月 1 日 | ...

异步应用在开发过程中有时会带来挑战,因为通常需要两个独立的组件才能看到完整的消息发布和消费生命周期。经常会发生这样的情况:您编写了一个可以将消息转储到 System.out 或日志文件的消费者,仅仅是为了确保您的发布者正在做正确的事情。如果您可以在一个组件中模拟消息发布和消费的交互,以便实际看到发生了什么,那将非常方便。

RabbitMQ Groovy DSL 旨在通过提供一个非常简洁的… 来帮助解决这个问题

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部