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 社群所有即將舉行的活動。

檢視所有