vFabric Cloud Application Platform 更新

工程 | Adam Fitzgerald | 2010年11月30日 | ...

vFabric
我們最近釋出了 vFabric Cloud Application Platform 的多個元件的更新。正如 Rod Johnson 在 原始公告中所提到的,vFabric 旨在快速交付可即時擴充套件且可移植到雲的下一代應用程式。這些最近的更新進一步增強了執行時應用程式服務之間的整合,並提高了現代應用程式的效能、可伸縮性、監控和可管理性。

vFabric tc Server 2.1

vFabric tc Server 的更新繼續使其成為構建和執行 Spring 應用程式的最佳選擇: 

  • Spring Insight
    隨 tc Server 2.1 一起包含的 Spring Insight 在開發和預生產階段提供了對 Spring 應用程式行為和效能的即時可見性。現在可以持久化應用程式行為的深入即時可見性,以檢視跨越先前時間範圍的資訊。管理和導航的改進使其易於操作並更直觀地呈現有用資訊。
  • 增強的模板
    一個內建的新模板機制簡化了 tc Server 與 vFabric GemFire HTTP Session Management 和 Hibernate Cache Modules 的配置。這使得 vFabric GemFire 能夠與 tc Server 2.1 自動啟動——無需更改應用程式程式碼或其他手動干預。

vFabric GemFire 6.5

vFabric GemFire 是現代應用程式的分散式資料管理平臺,提供動態可伸縮性、極高的效能和資料庫類永續性。兩個新模組簡化了 GemFire 與 tc Server 和 Hibernate 的整合,為現代應用程式提供複雜的資料管理。Jags Ramnarayan 在他 最新的部落格文章中進行了詳細介紹,但我們會在此處提供快速概述。

  • vFabric GemFire HTTP Session Management Module
    vFabric GemFire HTTP Session Management Module 解除安裝並管理 tc Server 或 Tomcat 伺服器的 HTTP 會話狀態。GemFire HTTP Session Management 經過預先配置並與 tc Server 自動啟動,提供高效能和可伸縮性。這對於處理大量請求並需要橫向擴充套件以滿足需求的 Web 應用程式特別有用。
    • 將會話管理與 tc Server 或 Tomcat Servlet/JSP 容器解耦
    • 獨立擴充套件應用程式伺服器和 HTTP 會話處理
    • 處理非常大的會話而不會丟失會話
    • 透過新模板機制輕鬆連線到 tc Server,或透過少量配置修改連線到 Tomcat
  • vFabric GemFire Hibernate Cache Module
    vFabric GemFire Hibernate Cache Module 為 Hibernate 提供了快速、可伸縮、分散式的 L2 快取。Swapnil Bawaskar 在他最新的 部落格文章中涵蓋了詳細資訊。
    • 顯著提高 Hibernate 效能
    • 減少到資料庫伺服器的網路流量(和潛在瓶頸)
    • 獲得 GemFire 的所有企業級功能
    • 可伸縮性——跨整個叢集分割槽資料
    • 開發者生產力與雲規模部署

vFabric Hyperic 4.5

vFabric Hyperic 是 vFabric Cloud Application Platform 的應用程式管理和監控元件,它提供了對整個虛擬化應用程式棧的完整連續可見性。 Jennifer Hickey 最近描述了 Hyperic 4.5 版本的內部細節……

STS 2.5.1 中新的 Groovy 除錯支援

工程 | Andrew Eisenberg | 2010年11月30日 | ...

在最近釋出的 SpringSource Tool Suite 2.5.1 中,我們對 Groovy 除錯進行了重大改進。一直以來,都可以使用 Eclipse 對 Java 的標準除錯支援來除錯 Groovy 應用程式,但由於 Groovy 與 Java 的語言差異及其超程式設計,許多除錯功能一直未能正常工作。

這篇文章中的所有截圖都來自一個簡單的 Grails 應用程式,因此此處的除錯功能隱含地利用了動態新增的 Groovy 方法和屬性。

步進

藉助增強的 Groovy 除錯支援,……

Spring Integration 2.0 GA 釋出

工程 | Mark Fisher | 2010 年 11 月 23 日 | ...

我非常高興地宣佈 Spring Integration 2.0 GA 已釋出!

下載

包含 Spring Integration JARs、原始碼 JARs 和文件的分發 zip 可在此處下載 here

依賴配置

這些工件也應該稍後在今天提供從 Maven 中央儲存庫中獲取。在此期間,您可以將 springframework Maven 儲存庫新增到您的 POM 中。以下示例顯示了對“spring-integration-core”的依賴以及 springframework 儲存庫條目。如果您計劃使用任何介面卡,可以將“spring-integration-core”替換為相應的介面卡……

擁抱 Spring 移動應用開發

工程 | Keith Donald | 2010年11月20日 | ...

SpringOne2gx 大會上,我們宣佈了在社交媒體和移動應用程式開發領域令人興奮的新舉措。幾周前,Craig Walls 釋出了 Spring Social。今天,Roy Clarkson 釋出了 Spring MobileSpring Android。在這篇文章中,我將重點介紹這些專案,並分享 Spring 如何旨在簡化移動應用程式開發。

移動應用開發中的選擇

如果您參加了今年的 SpringOne2gx,您會看到 Greenhouse,這是我們為社群構建的一個應用程式,它也作為 Spring 技術的參考和驅動。Craig 向您展示了 Greenhouse 的一些社交元素,例如將您的帳戶與 Twitter 和 Facebook 連線的功能。還有許多移動元素。具體來說,Greenhouse 兼作移動 Web 應用程式,並支援原生的 iPhone 版 Greenhouse……

GORM 的另一種風味:MongoDB

工程 | Graeme Rocher | 2010年11月15日 | ...

我們使 GORM 普及到所有 NoSQL 儲存的努力今天又達到了一個里程碑,我們很高興地宣佈 GORM for MongoDB

MongoDB 是一種文件資料庫,它彌合了鍵值儲存(快速且高度可擴充套件)和傳統 RDBMS 系統(提供豐富的查詢和深入功能)之間的鴻溝。

RedisGemfire 外掛一樣,GORM for MongoDB 完全支援 CRUD 操作

def person = new Person(name:"Fred", age: 45)
person.save()

person = Person.get(person.id)
assert person != null

person.delete()

assert Person.get(person.id) == null

使用動態查詢器進行豐富的查詢……

Hyperic 4.5 釋出

工程 | Jennifer Hickey | 2010年11月10日 | ...

經過數月的開發,我很自豪地宣佈Hyperic 4.5釋出。在此版本中,我們將Hyperic從JBoss上執行的EJB應用程式遷移到Tomcat上執行的Spring Web應用程式。詳細的遷移步驟在我的將Hyperic從EJB遷移到Spring的案例研究中進行了介紹,該案例研究最初在最近的SpringOne 2GX上發表。在這篇文章中,我想重點介紹一些我最喜歡的轉換內容。

改進的可測試性

切換到Spring使我們能夠將現有的無狀態會話EJB轉換為具有自動裝配依賴項的POJO。這消除了許多使單元測試變得困難的靜態JNDI查詢程式碼。Spring還顯著簡化了整合測試。在轉換之前,我們有少數整合測試,每個測試都需要幾分鐘來引導EJB容器的近似值。這個過程繁瑣且容易出錯。此外,測試通常會使資料庫處於不一致狀態,因此需要新增資料庫設定或拆卸程式碼,這增加了測試執行時間的額外開銷,並偶爾導致測試結果不一致。

轉換後,我們能夠利用Spring的整合測試支援來測試我們新的轉換後EJB服務層,就像……

Green Beans: Putting the Spring in Your Step (and Application)

工程 | Josh Long | 2010年11月09日 | ...

Spring框架在2003年成為事實上的標準,並一直以來幫助人們用更簡潔的程式碼構建更大、更好的應用程式。在本文中,我們將討論使用Spring元件模型配置應用程式的可用選項。我們將從最簡單的形式構建一個簡單的應用程式,並對其進行重構,以利用Spring框架中的許多簡化功能,這些功能使其成為當今應用程式的事實標準,並將繼續如此。

現代企業 Java 應用程式有許多協作物件,它們……

社交化 Spring 應用程式

工程 | Craig Walls | 2010年11月03日 | ...

如今,網民越來越多地使用網際網路透過社交網站與朋友、家人和同事建立聯絡。曾經透過電子郵件進行的對話現在發生在 Facebook 牆上的短訊息或 Twitter 上的簡短推文中。曾經透過握手建立的聯絡現在透過 LinkedIn 建立。當希望面對面會面時,可以使用 TripIt 共享旅行詳情。

正如人們使用這些社交網站相互交流一樣,企業也在尋找方法將自己注入社交圖譜,以便以更個人的方式與客戶建立聯絡,並使他們的網站成為客戶社交體驗的延伸。

本週,我們很高興釋出了 Spring Social 的第一個里程碑版本,這是一個 Spring 的新擴充套件,旨在提供一個平臺,用於構建具有社交功能的 Spring 應用程式。我想借此機會向您介紹 Spring Social,並讓您初步瞭解它提供的功能。

安全共享社交資料

表面上看,開發與各種社交網路互動的應用程式似乎很簡單。由於大多數社交網路都提供 REST API,Spring 的 RestTemplate 似乎就是您所需要的。但您很快會發現,這些社交 REST API 受 OAuth 保護,並且使用 OAuth 憑據簽署透過 RestTemplate 傳送的請求是一項非瑣碎的任務。

OAuth 是一種開放協議,它允許使用者與其在一個或多個服務提供商上託管的資料共享給另一個應用程式。透過訪問這些資料,應用程式可以聚合、呈現和處理資訊,從而提供超出服務提供商本身預期或設想的附加價值。

幾乎所有主要的提供商都支援 OAuth,包括 Twitter、Facebook、LinkedIn、TripIt 和 Foursquare,以及 Google 和 Yahoo API。因此,OAuth 對於開發具有社交功能的應用程式至關重要。

在 OAuth 安全互動的開始階段,有一個來回的對話,通常稱為“OAuth 舞步”。在典型的 OAuth 舞步中,涉及三方:

  • 服務提供商(例如 Twitter 或 LinkedIn)
  • 希望訪問或更新該服務提供商託管資料的使用者。
  • 使用者希望與之共享資料的消費者應用程式。

此舞步的關鍵步驟如下:

  1. 消費者應用程式將使用者重定向到服務提供商的站點進行登入並授權消費者。
  2. 假設使用者同意授予消費者訪問其資料的許可權,則流程將返回到消費者應用程式。
  3. 消費者應用程式從服務提供商處收到訪問令牌。

步驟 3 中收到的訪問令牌是任何請求服務提供商 REST API 都必須附帶的“代客鑰匙”。在 OAuth 1 中,這意味著訪問令牌、請求 URL、引數以及其他一些資訊被收集到一個基本字串中,進行加密,然後作為 Authorization 標頭髮送到請求中。構造此標頭並將其附加到請求是一項複雜的任務。這就是為什麼使用 RestTemplate 訪問 OAuth 安全資源很困難的原因。如果操作錯誤,服務提供商將對您嘗試訪問的任何資源響應 HTTP 401,並且對加密的 Authorization 標頭進行除錯很棘手。

使用社交模板

Spring Social 的一個關鍵元件是其社交模板集合。這些模板(在底層利用 RestTemplate)暴露了它們所模擬的服務提供商的操作,並處理了新增 OAuth Authorization 標頭的複雜性。

Spring Social 1.0.0.M1 包含 4 個社交模板供您選擇:

  • TwitterTemplate
  • FacebookTemplate
  • LinkedInTemplate
  • TripItTemplate

要使用這些模板中的任何一個,只需建立一個例項,透過建構函式引數提供 OAuth 連線詳細資訊。例如,建立 TwitterTemplate 的例項:

TwitterTemplate twitter = new TwitterTemplate(apiKey, apiSecret, accessToken, accessTokenSecret);

TwitterTemplate 建構函式中的四個引數都是 String 型別。API 金鑰和 API 金鑰在您向 Twitter 註冊應用程式時獲得(請參閱 http://dev.twitter.com/apps/new)。訪問令牌和訪問令牌金鑰是在 OAuth 舞步與 Twitter 結束時按使用者授予您的應用程式的。此時,我將假設您已經獲得了這四個值;我們稍後會回到如何管理 API 金鑰和令牌。

建立其他社交模板的例項並沒有太大區別。LinkedInTemplateTripItTemplate 各自具有與上面顯示的 TwitterTemplate 建構函式相同的引數列表的建構函式。由於 Facebook 的 API 安全性基於 OAuth 2,FacebookTemplate 的建構函式更簡單,只需要訪問令牌的值。

FacebookTemplate facebook = new FacebookTemplate(accessToken);

一旦您擁有了其中一個社交模板的例項,您可以用它做什麼?如果您使用的是 TwitterTemplate,也許您想知道已認證使用者的 Twitter 螢幕名稱?

String screenName = twitter.getProfileId();

或者,如果您想做一些更復雜的事情,也許您可以代表使用者傳送一條推文?

twitter.updateStatus("Hey, I'm tweeting with #Spring Social!");

同樣,有了 FacebookTemplate,您可以釋出到使用者的牆上。

facebook.updateStatus("Spring Social can also post to Facebook!");

如果您想檢視使用者的即將到來的旅行行程,TripItTemplategetTrips() 可以滿足您的需求。

List trips = tripIt.getTrips();
for(Trip trip : trips) {
    System.out.println("I'm traveling to " + trip.getPrimaryLocation() +
                                 " on " + trip.getStartDate());
}

這只是 Spring Social 模板可以做的一些事情的示例。請檢視 API 文件以瞭解可用的其他操作。

管理 OAuth 連線

當我上面建立 TwitterTemplate 例項時,我省略了 API 金鑰/金鑰和訪問令牌的來源。起初,訪問令牌將在使用者授權應用程式訪問其在服務提供商處託管的資料後獲得。但您可能不希望每次使用者使用您的應用程式時都強制他們進行授權,因此您需要一種方法來長期儲存訪問令牌,以便在將來的會話中重複使用。

在其第一個里程碑版本中,Spring Social 沒有提供 OAuth 令牌管理策略,而是讓應用程式自行獲取和管理 OAuth 詳細資訊。這是我們計劃在 1.0 Milestone 2 中解決的問題。但在此之前,我們可以參考 Greenhouse 來了解這可能如何成形。

在 Greenhouse 中,有關服務提供商的所有資訊都儲存在關係資料庫的 ServiceProvider 表中,其架構如下:

如您所見,ServiceProvider 表包含提供商的 API 金鑰和金鑰等資訊。為了訪問單個服務提供商記錄,Greenhouse 使用 JdbcServiceProviderFactory,它是 ServiceProvider 介面的實現。

package com.springsource…

Spring Python 1.2.0.RC1 已釋出!

工程 | Greg L. Turnquist | 2010年11月03日 | ...

經過數月的工作,Spring Python 的第一個 1.2 版本已可用

該專案已將其文件遷移到 Sphinx,這是用於記錄 Python 語言本身的工具。您可以訪問專案網站並以HTML 格式檢視,或下載epub 版本以便在智慧手機或平板裝置上檢視。

此版本的 Spring Python 遷移到 Python 2.6,放棄了對 2.4 和 2.5 的支援。這意味著團隊正在準備利用 Python 的許多新功能,這也為將來向 Python 3.x 過渡鋪平了道路。

Spring Python 具有……

Spring Integration 2.0 Release Candidate 1

工程 | Mark Fisher | 2010年10月29日 | ...

我們很高興地宣佈 Spring Integration 2.0 的第一個候選版本!下載 | 參考手冊 | JavaDoc

我想借此機會提供一個通用的“有什麼新內容?”指南。實際上,新的功能和改進太多,無法在一篇文章中全部涵蓋,但我將重點介紹一些亮點。隨著我們越來越接近 2.0 GA 版本,我們將釋出更多部落格。目前,本文大致基於 Oleg 和我上週在 SpringOne 上的一次演示。該演示主要是透過程式碼演示的,程式碼可在我們的Git 倉庫中找到。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有