下載「Spring in Production」白皮書
我們最近舉辦了一場關於「Spring in Production」主題的網路研討會。我當時承諾會將網路研討會的錄音和隨附的投影片放在我們的網站上。不幸的是,為我們製作網路研討會的工程師忘記設定「錄製」標誌,所以我需要為您重新錄製該會議:(。我目前正在旅行,但我會盡力這樣做,並儘快提供。
好消息是,在此期間您無需錯過。我寫了一篇關於「Spring in Production」主題的白皮書,其中涵蓋了網路研討會中的材料以及更多內容…
我們最近舉辦了一場關於「Spring in Production」主題的網路研討會。我當時承諾會將網路研討會的錄音和隨附的投影片放在我們的網站上。不幸的是,為我們製作網路研討會的工程師忘記設定「錄製」標誌,所以我需要為您重新錄製該會議:(。我目前正在旅行,但我會盡力這樣做,並儘快提供。
好消息是,在此期間您無需錯過。我寫了一篇關於「Spring in Production」主題的白皮書,其中涵蓋了網路研討會中的材料以及更多內容…
一些使用者詢問我們是否致力於Spring Java Configuration,以及它與 Spring 2.5 中引入的註解配置選項之間的關係。答案是肯定的,我們致力於 Java Config;並且這兩種方法並非互斥。
這兩種配置方法截然不同:Spring Framework 中的 @Autowired 註解使用商業物件中的註解配置元件,而 Spring Java Config 採用獨特的方法,將註解外部化到專用的配置類別中。這兩種方法都不是絕對正確的…
正如你們中的一些人已經注意到的那樣,Spring 2.5 RC1 終於在星期一發布,正在等待您進行測試!Spring 2.5 在許多方面都是完成 Spring 2.0 使命的版本:為 Java 1.4 和 Java 5 提供最靈活和最全面的配置模型。Spring 2.5 尤其著重於對 Java 5 的全面支援,引入了各種其他註解選項。我想藉此機會指出此版本背後的統一主題
Spring 2.5 允許方便的外部化配置,同時盡可能保持簡潔。這是建立在 Spring 2.0 對 XML schema 命名空間的支援之上,Spring 2.5 引入了新的「context」和「jms」配置命名空間。後者是 Spring 配置命名空間可以提供的附加價值的特別好的例子 - 如果您正在使用 Spring 2.0 樣式的訊息驅動物件,絕對值得採用!此外,Spring 還允許以程式方式啟動,無需涉及 XML…
您可能已經看到一些關於最近新聞報導,內容是 Interface21 與 Tasktop 合作建立「Spring Tool Suite」。此套件將 Spring IDE、AspectJ Development Tools (AJDT)、AspectJ 和 Mylyn 結合在一起,以建立以任務為中心的 Spring 驅動企業應用程式開發方法。我們希望在即將到來的 The Spring Experience 會議上與您分享整合套件的預覽版,但同時您會看到許多改進流入現有的 Spring IDE、AJDT、AspectJ 和 Mylyn 開放….
在上個月的 Gartner 開放原始碼會議上,分析師宣稱開放原始碼已滲透到全球軟體市場的很大一部分。這些細節在最近的一篇 Matt Asay 部落格中強調,該部落格引用了 eWeek 文章。eWeek 寫道:「開放原始碼產品在 2006 年佔 927 億美元軟體市場的 13%,但到 2011 年,當收入預計達到 1692 億美元時,應該佔市場的 27%。」
同時,Gartner 分析師 Massimo Pezzini 和 Yefim Natis 發布了一份報告,強調了目前在中間件和交易處理市場中正在進行的重要的顛覆脈絡。2007 年 9 月 24 日的報告,標題為 「平台中間件的趨勢:顛覆即將來臨」,強調了十多種趨勢,「將擾亂看似靜態的應用程式伺服器和交易處理市場」,並警告說…
正如我之前發布的那樣,Interface21 正在參與 Java EE 6 的工作,我們的許多人,包括我自己、Juergen Hoeller、Keith Donald 和 Rob Harrop 將參與多個專家組。
這意味著我們越來越多地參與到一般的 JCP 中。我們尊重 JCP 的機密性和其他規定,因此我們不會談論任何非公開的事情。但是,我想談談我們參與 JCP 的目標以及我們將採取的根本方法。當然,我們只是眾多公司和個人中的一家公司,所以我們將…
Spring 2.5 具有一個新的切入點指示符 -- bean(),允許選擇具有符合名稱模式的 bean 中的連接點。現在可以使用自動代理機制以及 Spring-AspectJ 整合來選擇特定的 bean,即使有多個相同類型的 bean。之前,您可以使用 BeanNameAutoProxyCreator 來實現類似的結果;但是,該機制不適用於 Schema 樣式或 @AspectJ 切面。
除了選擇特定的 bean 之外,如果您遵循適當的命名慣例,此切入點指示符還提供了兩種有趣的方法來選擇 bean
圖 1:使用 bean() 切入點根據其名稱選擇 bean 的水平和垂直切片
此切入點表示 Spring 對 AspectJ 切入點表達式語言的特定擴充,因此僅在基於 Spring 的應用程式中才有用。名稱模式遵循 AspectJ 名稱模式的匹配規則,其中 '*' 是唯一允許的萬用字元。以下是一個表格,顯示了一些範例切入點和它們選擇的 bean。切入點 | 在以下項目中選擇的連接點 |
---|---|
bean(accountRepository) | 名為 "accountRepository" 的 bean |
!bean(accountRepository) | 除了 "accountRepository" bean 之外的任何 bean |
bean(*) | 任何 bean |
bean(account*) | 任何名稱以 "account" 開頭的 bean |
bean(*Repository) | 任何名稱以 "Repository" 結尾的 bean |
bean(accounting/showaccount) | 名為 accounting/showaccount 的 bean(指定,例如,處理該 URL 的控制器) |
bean(accounting/*) | 任何名稱以 "accounting/" 開頭的 bean(指定,例如,處理與會計相關的 URL 的任何控制器) |
bean(accounting/*/edit) | 任何名稱以 "accounting/" 開頭並以 "/edit" 結尾的 bean(指定,例如,處理與會計相關的編輯操作功能的任何控制器) |
bean(*dataSource) || bean(*DataSource) | 任何名稱以 "dataSource" 或 "DataSource" 結尾的 bean |
bean(service:name=monitoring) | 名為 "service:name=monitoring" 的 bean |
在標題恰如其分的關於 Interface21 的胡說八道中,一位 SourceLabs 的員工不同意我的論點,即提供可信的開源支持需要提交權限。
在我回覆之前:我想再次聲明一件非常清楚的事情,我已經在上篇部落格中說明過,但似乎被一些人誤解了:Interface21 無意阻止其他人從 Spring 獲利。我們的往績證明了這一點。我們歡迎其他人撰寫關於 Spring 的文章並提供 Spring 服務。或者基於 Spring 構建產品,例如 Matt Raible 的 AppFuse。我們祝他們成功。Spring 在某種程度上…
我幾個月前關於開源業務模型的部落格似乎引起了共鳴。我收到了許多正面的迴響,並促使一個名為「How Software is Built」的網站提出採訪要求。我的採訪在這裡。
終於有人從 OpenLogic 發表了一個有趣的回覆。Bryan Noll 在回覆我的部落格中留下了一些評論,這些評論值得正式的回應。
首先,我認為您的斷言,即當對特定專案沒有實際投資的人為其提供支援時,對專案或一般開源不利,這是一個有趣的觀點……一個我以前沒有聽過的觀點。我認為它具有足夠的有效性,可以讓像我們這樣的公司考慮它,並真正檢查我們對所支援的開源專案的責任。在我看來,這種檢查的結果將是 OpenLogic 擁有的可證明政策,以減輕您提出的潛在疑慮。我確信我不知道那會是什麼,所以請允許我在這一點上含糊其辭。不過,這與我對您所說的一些問題非常吻合。我認為找到這樣一個「可證明的政策」會非常簡單。OpenLogic 需要理解 Stormy 的文章中的開頭評論「在開源軟體上工作的開發人員通常有收入頗豐的日常工作……所以他們免費在開源軟體上工作,並且白天為大公司編寫代碼」在很大程度上是錯誤的,理解他們希望從中獲利的開源軟體的來源,適當地合作,並設定一個允許真正支持的價格點。另一種選擇是停止聲稱提供企業支持,並明確聲明所提供的是一種隨叫隨到的開發協助,不能保證能夠解決關鍵問題。這讓我回到了為什麼我對 Stormy 的文章感到如此強烈以至於要解構它。
我將聚合模型視為超市式的業務。當我在超市購物時,我希望他們會從我購買的所有商品中抽取(一小部分)利潤,以換取與許多供應商打交道,將所有…
到目前為止,Spring Portfolio Maven 構件,尤其是快照,創建不一致且分散在各個位置。在過去的幾週裡,我們一直在努力使項目在這些構件的創建和上傳方面更加一致。
Spring Portfolio 中 Maven 支援最有效的改進之一是使用一致的儲存庫位置。根據您對程式碼的熟悉程度,有三個不同的儲存庫。
對於任何最終版本(Spring 2.5、Spring Web Flow 2.0 等),該版本的 Maven 構件將上傳到 Maven Central 儲存庫 (http://repo1.maven.org/maven2)。使用此儲存庫不需要您付出任何努力,因為 Maven 會自動在那裡尋找構件。
此儲存庫中的構件確實遵循預期的儲存庫行為,並且不會(並且不能)被刪除。
對於任何里程碑版本(Spring 2.5-RC1、Spring Web Flow 2.0-M2 等),該版本的 Maven 構件將上傳到 Spring Milestone 儲存庫 (http://s3.amazonaws.com/maven.springframework.org/milestone)。使用此儲存庫需要您在 POM 中的 <repositories/> 元素中添加一個條目。它應該看起來像這樣
<repository>
<id>spring-milestone</id>
<name>Spring Portfolio Milestone Repository</name>
<url>http://s3.amazonaws.com/maven.springframework.org/milestone</url>
</repository>
此儲存庫中的構件不遵循預期的儲存庫行為,並且會定期刪除。在最終版本(Spring 2.6、Spring Web Flow 2.1 等)發布後,將刪除該構件先前版本的所有里程碑版本。例如,當 Spring 2.6 發布時,將刪除 Spring 2.5 的里程碑版本,而 Spring 2.6 的里程碑版本將被保留。
對於任何快照構建(Spring 2.5-SNAPSHOT、Spring Web Flow 2.0-SNAPSHOT 等),該構建的 Maven 構件將上傳到 Spring Snapshot 儲存庫 (http://s3.amazonaws.com/maven.springframework.org/snapshot)。使用此儲存庫需要您在 POM 中的 <repositories/> 元素中添加一個條目。它應該看起來像這樣
<repository>
<id>spring-snapshot</id>
<name>Spring Portfolio Snapshot Repository</name>
<url>http://s3.amazonaws.com/maven.springframework.org/snapshot</url>
</repository>
此儲存庫中的構件不遵循預期的儲存庫行為,並且會定期刪除。至少將保留給定構件的最後 10 個快照構建。如果從分發中刪除某個構件,則將立即刪除其快照構建。在里程碑或最終版本發布時,將刪除該構件的所有快照,並創建下一個版本的新快照。
里程碑和快照儲存庫都託管在 Amazon’s S3 服務上,因此目錄結構不具有人類可讀性。要以人類可讀的格式查看儲存庫,請使用 S3Browse 實用程式。
僅使用這些 URL 進行人類可讀的查看。如果您將它們用作 POM 的 URL,您將遇到錯誤。
另一個重要的改進是為所有版本添加了來源構件。您會注意到在里程碑儲存庫中,所有構件都部署了來源。這也將適用於我們以後的所有最終版本。具體來說,從 Spring 2.5 版本開始,除了組合的 Spring 來源之外,每個模組還將有一個來源構件。
最終的改進是一個尚未完成的改進;Spring 的每晚快照。我很高興地說,這已經接近完成。我仍在解決有關 Maven Ant Tasks 的最終問題,但這最終會開始出現,並且我會在再次宣布它時。此外,您可以期望此功能最終會應用於所有其他基於 ANT 的 Spring Portfolio 項目,以便所有項目都將創建 Maven 快照以及里程碑。