Spring:Grails 的基石

工程 | Peter Ledbrook | 2010 年 6 月 8 日 | ...

在 SpringSource 的 Groovy & Grails 培训课程中,我们强调 Grails 是站在巨人的肩膀上。Spring 就是其中一位巨人。没有 Spring,Grails 根本无法如此快速地发展起来。它很可能也没有现在这样轻松集成企业 Java 系统的灵活性。看看可用的插件数量就知道了:许多插件都基于支持 Spring 的 Java 库。

在这篇文章中,我想先看看 Grails 如何使用 Spring,然后介绍你可以访问这种原始力量和灵活性的各种方式。

Spring 的衍生品

你可能不知道,但当你创建一个 Grails 应用程序时,你也创建了一个 Spring MVC 应用程序。在底层,Grails 创建了一个 Spring MVC 的变体DispatcherServlet并配置了一堆 Bean 来处理繁重的工作。当然,这意味着你的应用程序有一个 Spring 上下文在支撑着——一个你以后可以看到的、可以访问的上下文。

这里有一些…

将 SpringSource Tool Suite 2.3.3.M1 与 Roo 和 GWT 结合使用

工程 | Christian Dupuis | 2010年6月2日 | ...

到目前为止,你们中的大多数人可能都听说过 Google I/O 上关于 Spring、Roo、STS 和 GWT 的公告。BenRod 最近在他们各自的博客文章中对此进行了介绍。如果你错过了主题演讲,我强烈建议观看 YouTube 上的录音以了解最新情况(相关部分从录音的 1:09:00 开始)。

今天,我想提供一些详细的步骤和说明,说明如何使用 Roo 和 STS 创建你的第一个 GWT 应用程序。

安装

在我们可以启动 Roo shell 并开始输入命令之前,我们需要下载并安装所有先决条件。虽然很多…

什么是面向插件的架构?

工程 | Peter Ledbrook | 2010 年 6 月 1 日 | ...

Grails 是一个用于快速轻松开发 Web 应用程序的绝佳框架。你还可以访问大量的插件,这些插件提供功能或使与其他系统的集成变得轻松愉快。这都很好,但在本文中,我想谈谈当你的应用程序不断增长,你开始淹没在控制器、域类和其他文件的海洋中时会发生什么。

关注点分离

软件架构中最有用的模式之一叫做关注点分离。其思想是将与特定功能或关注点相关的所有内容分组到一个单一的、自包含的单元中。该单元中的代码不应承担任何其他责任。例如,Web 服务的业务逻辑应该在一个类中,而处理 SOAP 消息应该在另一个类中:业务逻辑和 SOAP 处理是两个不同的关注点。

这种模式的真正妙处在于,你可以将这些单元聚合为更粗粒度的关注点,因此你会在多个级别上使用这种模式。例如,假设前面提到的 Web 服务…

SpringSource dm Server 2.0.2 今天发布。

工程 | Christopher Frost | 2010年5月27日 | ...

此版本修复了一些 bug,发行说明可从 JIRA 获取。此版本可从 SpringSource.org 上的项目页面下载。

  • 内核启动硬超时限制已增加,以允许 dm Server 在较慢的机器上运行。
  • 记录了 OSGi Web 容器中的一个限制,不支持 Tomcat <context> 元素。
  • 修复了 ServiceScoper 类以关闭所有输入流。
  • 增加了容忍 File.list 偶尔返回 null 的支持,这表现为 pickup 目录偶尔无故自行清除。
  • 在 ServerOsgiBundleXmlWebApplicationContext 中使用 @Configurable 现在有效。

该项目正在捐赠给 Eclipse 基金会,命名为 Virgo。我们的目标是在适当时候发布 Virgo 的基线版本,该版本将与 dm Server 2.0 功能等效。有关更多信息,请参阅 Virgo 网站。除了 dm Server,SpringSource 还将为 Virgo 提供商业支持。

Spring Insight 1.0.0.M3 发布

工程 | Jon Travis | 2010年5月26日 | ...

Spring Insight 团队很荣幸地宣布 Spring Insight 1.0.0.M3 的发布。此版本包含大量新增强功能,旨在为您提供更高的生产力,并让您的应用程序更快地投入生产。Spring Insight 作为 tc Server Developer EditionSpringSource Tool Suite 的一部分提供,但您可以在 http://springsource.org/insight 获取新的开发者版本。设置时间通常只需 10 秒。

Spring Insight 1.0.0.M3 Screencast

Speed Tracer

最受关注的新功能是我们与 Google Speed Tracer 的集成,该功能已在上周的 Google IO 大会上宣布。这种创新的组合让开发者能够全面了解在 Web 请求中执行的所有工作——从 CSS 样式和视图渲染到 JDBC 查询和 JSP 渲染时间。与 Google 的工程师合作,利用这项技术创造出一些前沿用途,真是令人兴奋。您会喜欢这个功能!这是一个无缝集成,易于使用,并为您提供了前所未有的可见性。

更简单的用户界面

我们还在应用程序中添加了许多信息:吞吐量和错误率指标、健康区域、对 Spring 控制器的更深入可见性、更深入的 JDBC 支持、应用程序健康状况等等。然而,这些新信息不应令人不知所措,因为我们还投入了大量时间在简洁性上,使我们的用户界面直观且易于导航。

开发工具包

最后,我们发布了我们的 Insight Development Kit (IDK)。我们从许多用户那里了解到,他们希望能够在 Insight 中自定义其应用程序或添加额外的指标。Insight 现在通过其 @InsightOperation 和 @InsightEndPoint 注解以及 IDK 和用于创建更深入插件的教程提供了此功能。IDK 包括 Insight 附带的所有插件的源代码(Apache 2.0 许可)以及 IDK API——编写您自己应用程序的绝佳示例和说明。

Spring Insight 团队正在紧锣密鼓地进行下一个版本的开发,我们的列车正在高速前进,我们迫不及待地想听取您的反馈和建议。请从 http://springsource.org/insight 下载发布版本,并在 社区论坛中给我们留言…

Spring Python 1.1 书籍出版

工程 | Greg L. Turnquist | 2010 年 5 月 24 日 | ...

Spring Python 1.1 书籍出版了! Spring PythonSpring FrameworkSpring Security 的概念应用于 Python 世界。

在这本书中,你将使用依赖注入面向切面编程数据访问事务管理远程处理安全编写代码。在第一个案例研究中,你将构建一个银行 Web 应用程序,并了解如何将所有这些组件协同工作,快速满足你的需求。在第二个案例研究中,你将集成 Python 和 Java,构建一个航班预订系统。

这本书充满了代码…

更多 Grails 1.3 功能

工程 | Peter Ledbrook | 2010 年 5 月 24 日 | ...

上周,我描述了 Grails 如何将插件视为可以从 Maven 兼容存储库中拉取的普通依赖项。虽然这是 1.3 的一个重要新功能,但并非唯一的功能。在这篇文章中,我将介绍一些其他功能,并从我最近才发现的一个功能开始。

命名查询

GORM 提供了三种不同的数据库查询方式
  • 动态查找器,例如 Book.findByTitleAndAuthorLike(...);
  • Criteria 查询,使用漂亮的 DSL;以及
  • HQL,Hibernate 的类似 SQL 的查询语言。
这三个功能提供了易用性和强大功能的强大组合,为您提供了所需的灵活性。然而,仍然缺少一些东西。

开发一个非平凡的 Grails 应用程序,你很快就会意识到你经常一遍又一遍地使用相同的查询。你应该怎么做?复制粘贴技术很简单,但会留下主要的维护问题。你可以为每个常用查询编写服务方法…

Spring Roo 1.1.0.M1 发布

工程 | Ben Alex | 2010年5月19日 | ...

我很高兴地宣布我们刚刚发布了 Spring Roo 1.1.0.M1。Spring Roo 是 Java 开发人员使用 Java 编程语言构建基于 Spring 的应用程序的最快方式。使用 Roo 1.1.0.M1,您可以在短短 200 次击键内构建工作正常的 Web 应用程序——包括一个 Google Web Toolkit (GWT) 前端!此外,我们还一如既往地同时发布了新版本的 SpringSource Tool Suite (STS 2.3.3.M1),该版本针对最新和最棒的 Roo 功能进行了优化!

自我们三个月前发布 1.0.2 版本以来,有超过 200 项修复、增强和新功能。一些……

Spring向前迈进,迈向开放PaaS

工程 | Rod Johnson | 2010年5月19日 | ...

几周前我发推说——令人难以置信的是——SpringSource在VMware内部的执行速度比作为初创公司时更快。今天,我们宣布了另一个证实这一点的激动人心的进展。

继我们与SaaS领导者salesforce.com建立VMforce合作关系之后,今天我们宣布VMware与Google之间的合作,核心围绕Spring编程模型和SpringSource IDE及RAD工具。今天的公告使Spring成为Google App Engine的首选编程模型。这是对Spring作为Java最佳且最具可移植性编程模型的巨大认可,并为Spring开发者开辟了新的部署机会。今天在Google I/O主题演讲中展示的演示,展示了SpringSource和Google工程师数月合作的成果——其中大部分无论开发者希望在哪里…

使用 Grails 1.3 管理插件

工程 | Peter Ledbrook | 2010 年 5 月 18 日 | ...

长期以来,管理 Grails 依赖项仅仅意味着将它们放在应用程序的lib目录中。然后是 Grails 1.2 和依赖项 DSL:你终于可以声明你的依赖项,让 Grails 自动下载它们并将它们提供给你的应用程序。太棒了!

现在,Grails 1.3 将依赖项 DSL 引入了插件领域。

那又怎样?

到目前为止,用户在插件系统方面经常遇到两个问题
  1. 设置一个合适的 Subversion 服务器来充当 Grails 插件存储库并不简单;并且
  2. 你无法控制插件会向你的应用程序引入哪些依赖项。
第一个问题并不特别适用于个人开发者,但对于公司来说,它是一个更大的问题,这些公司可能无法访问互联网,或者他们希望更好地控制库和插件的“最新”版本。如果他们可以使用像 NexusArtifactory 这样的存储库管理器,那该多好。

至于依赖项,一些插件包含了你不需要的库,或者(更糟糕的是)破坏了你的应用程序。通过依赖项 DSL,你可以显式排除有问题的库。

这些是此更改可能… 的一些原因。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有