Spring 2.1-m2 中的基礎設施變更

工程 | Ben Hale | 2007年6月1日 | ...

隨著 Spring 2.1-m2 的釋出,Spring 發行版的基礎設施發生了一些重大變化。請參閱公告變更日誌以獲取完整的變更列表。

發行版

發行版已從 2.1-m1 的 26 個 JAR 縮減到 2.1-m2 的 17 個 JAR。檢視變更日誌以獲取已更改檔案的列表,但從提交訊息來看,以下是新增內容:
  • spring-context.jar 包含 JMX 支援和核心遠端處理支援(不再有 spring-jmx 和 spring-remoting jar)
  • spring-orm.jar 結合了所有 ORM 支援包(取代了 spring-hibernate, spring-ibatis, spring-jdo, spring-jpa 和 spring-toplink jar)
  • spring-web.jar 包含與 Web 相關的遠端處理和 ORM 類(以便在 J2EE EAR 部署結構中正確使用)
  • 將 spring-dao.jar 重新命名為 spring-tx.jar,現在也包含 JCA 支援
  • 將 spring-support.jar 重新命名為 spring-context-support.jar
  • 將 spring-portlet.jar 重新命名為 spring-webmvc-portlet.jar
  • 模組 jar 檔案現在包含模組特定的 "spring.handlers" 和 "spring.schemas" 檔案

Maven 工件

我也很高興地宣佈,從 2.1-m2 版本開始,每個 Spring 模組現在都將在 Maven 倉庫中包含源 JAR。2.1-m2 Maven 工件目前位於一個私有快照倉庫中,但最終版本將位於主 Maven 倉庫中。如果您想在 Maven 專案中開始使用 2.1-m2,請在您的 POM 中新增一個指向 https://springframework.svn.sourceforge.net/svnroot/springframework/repos/repo-snapshots/ 的倉庫位置。如果您正在使用任何 Maven IDE 支援,請同時下載源 JAR 並在我們的 JIRA 上報告任何相關問題。

在 Spring 2.1 中自定義註解配置和元件檢測

工程 | Mark Fisher | 2007年5月29日 | ...

注意:此帖子已於 2007 年 5 月 31 日更新,以反映 2.1-M2 官方釋出的狀態

兩週前我撰寫部落格介紹了 Spring 2.1 新的註解驅動依賴注入功能,並提到我將在“本週晚些時候”提供更多資訊。事實證明這有點樂觀,但好訊息是此功能在此期間已經發展了很多。因此,要跟隨這裡的示例,您需要下載2.1-M2 官方版本(或者如果您是第一批閱讀此更新條目且 M2 尚未釋出的人,您應該至少獲取 nightly build #115,您可以在此處下載)。

我想演示的第一件事是如何不使用任何 XML 建立應用程式上下文。對於那些使用過 Spring 的 BeanDefinitionReader 實現的人來說,這會非常熟悉。然而,在建立上下文之前,我們需要在類路徑上準備一些“候選”bean。繼續我之前部落格中的示例,我有以下兩個介面:


public interface GreetingService {
	String greet(String name);
}

public interface MessageRepository {
	String getMessage(String language);
}

……以及這些對應的實現


@Component
public class GreetingServiceImpl implements GreetingService {

	@Autowired
	private MessageRepository messageRepository;
	
	public String greet(String name) {
		Locale locale = Locale.getDefault();
		if (messageRepository == null) {
			return "Sorry, no messages";
		}
		String message = messageRepository.getMessage(locale.getDisplayLanguage());
		return message + " " + name;
	}
}

@Repository…

會議季高潮迭起,直奔 SpringOne!

工程 | Rod Johnson | 2007年5月28日 | ...

好久沒有時間寫部落格了。我們一直很忙。我們籌集了 1000 萬美元。正如Adrian 所指出的那樣,我們一直非常積極地進行產品開發。過去幾個月我自己編寫的程式碼比往常更多。(主要是實驗性的東西,可能見光,也可能不見光,但很有趣,有時我做的事情最終被證明是有用的。)我花了很多時間與媒體和分析師交談;我們最近獲得了巨大的媒體關注。媒體/分析師電話會議可能很累人,但也很有價值,因為這些人中很多人都很聰明,會提出發人深省的問題……

Spring 產品組合中的新版本

工程 | Adrian Colyer | 2007年5月25日 | ...

去年年底,我們開始討論 Spring“釋出列車”的概念。釋出列車背後的想法是,我們協調發布 Spring 產品組合中的產品:經過共同測試並協同工作。您仍然可以挑選您需要的元件,但當您想一起使用各種產品時,會更容易。我們還沒有完全實現,但我們正在路上。

我們 Interface21 的一個難題是,對我們支援服務、培訓和諮詢的需求如此之高,以至於我們一直在全力以赴地努力滿足這些需求。這使得我們很難獲得一致且可預測的產品開發時間,以實現像釋出列車這樣的事情。這只是我如此興奮於最近宣佈 Benchmark Capital 對 Interface21 投資 1000 萬美元(新聞稿…)的眾多原因之一。

Spring Web Flow Java One 2007 演示

工程 | Keith Donald | 2007年5月18日 | ...

當 Sun 將我關於Spring Web Flow的 JavaOne 2007 研討會安排在週五,也就是大會的最後一天時,我不知道會發生什麼。我很榮幸今年再次被接受,但我在想在為期四天的大會最後一天進行演示時,會有多少人出席。

我對事情的進展感到非常滿意。週四我在演講者設定處報到時,已有 800 人預註冊了我的週五研討會。在我的演講開始前十五分鐘,房間已達到這個人數。最終,1000 名 JavaOne 參會者來到了 307-310 號房間……

Spring 2.1 中註解驅動的依賴注入

工程 | Mark Fisher | 2007年5月14日 | ...

Spring 2.0 引入了註解支援和註解感知配置選項,可供使用 Java 5(或更高版本)的 Spring 使用者利用

@Transactional 用於標記和配置事務定義
@Aspect (AspectJ) 用於定義切面,以及 @Pointcut 定義和通知(@Before、@After、@Around)
@Repository 用於指示充當倉庫(也稱為資料訪問物件或 DAO)的類
@Required 用於強制為帶註解的 bean 屬性提供值

透過 Spring 2.1,這種註解驅動配置的主題得到了顯著擴充套件,並將在我們邁向 RC1 版本時繼續發展。事實上,現在可以透過註解驅動 Spring 的依賴注入。此外,Spring 可以*發現*需要在應用程式上下文中配置的 bean。

這篇博文將作為分 10 個易於遵循的步驟的教程式介紹,介紹基本功能。我將在本週晚些時候提供有關一些更高階功能和自定義選項的資訊。如果您對其他配置選項感興趣,還應該檢視 Spring Java Configuration 專案和這篇部落格

本教程至少需要 Java 5,建議使用 Java 6(否則在步驟 1 結束時有一個單一要求)。

步驟 1

獲取 spring-framework-2.1-m1-with-dependencies.zip。解壓縮存檔後,您將在“dist”目錄中找到 spring.jar 和 spring-mock.jar。將它們新增到您的 CLASSPATH 中,以及以下內容(所示路徑相對於解壓縮的 2.1-m1 存檔的“lib”目錄)

  • asm/asm-2.2.3.jar
  • asm/asm-commons-2.2.3.jar
  • aspectj/aspectjweaver.jar
  • hsqldb/hsqldb.jar
  • jakarta-commons/commons-logging.jar
  • log4j/log4j-1.2.14.jar
(注意:如果您沒有執行 Java 6,您還需要新增 j2ee/common-annotations.jar)

步驟 2

提供示例的介面和類。我已儘量使其儘可能簡單,但又能演示主要功能。我將所有程式碼和配置都包含在一個“blog”包中。我建議遵循相同的指導原則,以便示例按原樣工作;否則,請務必進行必要的修改。首先是 *GreetingService* 介面

public interface GreetingService {
    String greet(String name);
}

然後,一個簡單的實現


public class GreetingServiceImpl implements GreetingService {
    private MessageRepository messageRepository;

    public void setMessageRepository(MessageRepository messageRepository) {
        this.messageRepository = messageRepository;
    }

    public String greet(String name) {
        Locale locale = Locale.getDefault();
        String message = messageRepository.getMessage(locale.getDisplayLanguage());
        return message + " " + name;
    }
}

由於服務依賴於 *MessageRepository*,請定義……

Spring Web Flow Bean 作用域和 JSF

工程 | Ben Hale | 2007年5月8日 | ...

我最近完成了 Spring Web Flow 中的一個有趣問題。這個問題(SWF-163)涉及到為 Spring Web Flow 的內部作用域新增 Spring 2.0 bean 作用域支援。實現本身並不是那麼有趣(畢竟 Scope 介面相當容易實現),但我想提一下你如何在你的應用程式中使用類似這樣的東西。

Spring 2.0 作用域

在 Spring 1.x 中,我們有單例和原型 bean 作用域的概念,但表示法是固定的,並且用 singleton="[true | false]" 來描述並不是特別清晰。因此在 Spring 2.0 中,這種表示法從 XSD 樣式的配置中移除,現在您看到的是更清晰的表示法 scope="[singleton | prototype | ...]"。Spring 本身增加了三個更多的 bean 作用域;requestsessionglobalSession,它們與 Web 應用程式相關。

透過 Spring Web Flow 1.1 的最新快照,我們現在看到了三個主要的 Web Flow 作用域的 bean 作用域:flashflowconversation


<bean id="sale" class="org.springframework.webflow.samples.sellitem.Sale…

Spring Batch

工程 | Dave Syer | 2007年5月7日 | ...

介紹

我一直在與幾位客戶努力開發一款名為 Spring Batch 的新產品。其目標是提供工具和應用程式,以支援企業環境中的批次處理。Spring Batch 是 Spring Portfolio 的一部分,其初始版本將在 Spring 2.1 釋出列車中釋出。

構建一些原型程式碼的最初動力實際上是獨立地來自 Interface21 的許多客戶。這提供了有用的額外細節和對實現的一些約束,以便它可以應用於客戶提出的實際問題。我希望這篇文章……

強大組合:SCA、OSGi 和 Spring

工程 | Adrian Colyer | 2007年5月1日 | ...

不,這不是我的標題,它實際上是 開放 SOA 協作組織 最近釋出的一份白皮書的標題。引用白皮書隨附的新聞公告:

“根據使用者反饋,OSOA 協作組織正在釋出一份白皮書,重點介紹 SCA、Spring 和 OSGi 技術的強大組合,旨在幫助開發人員簡化服務的建立和組合,這對於構建基於 SOA 方法的應用程式至關重要。”
開放 SOA 協作組織開發服務協作架構(SCA)規範,其合作伙伴包括 BEA、IBM、IONA、Oracle、Red Hat、SAP、Siemens、Sun、Tibco 等。因此,當這個團體開始圍繞“SCA、Spring 和 OSGi 的強大組合”凝聚時,這是對 Spring 框架以及我們在 Spring OSGi 專案中所做工作的巨大認可。

這篇白皮書簡要概述了 SCA、OSGi 和 Spring,然後描述了它們如何協同使用。引用摘要:

“SCA、OSGi 和 Spring 都是 Java 程式設計師可使用的有用且強大的工具。在我們正在進入的新的面向服務世界中,將 SCA、OSGi 和 Spring 結合使用,為使用少量 API、具有託管依賴項、版本控制和動態更新功能的簡單 Java Bean 集構建服務實現提供了強大的功能,並能夠將這些實現與其他用 Java 或其他語言編寫並存在於使用各種通訊方法的分散式系統網路中的服務元件進行組合。

簡單性、靈活性、可管理性、可測試性、可重用性。這是企業開發人員的關鍵組合。”

下週我將在 JavaOne 大會上與 IBM 的 Mike Edwards 共同展示 SCA 和 Spring:TS-8194 議程,“Spring 和服務元件架構……”

從 Amazon S3 查詢和下載

工程 | Ben Hale | 2007年4月30日 | ...

上一篇文章中,我描述了我們如何使用自定義 ANT 任務從 Spring 產品組合中基於 ANT 的專案上傳每日快照。在這篇文章中,我將描述我們如何使用 Amazon S3 為每個專案的快照生成頁面並允許使用者下載快照。

正如我在上一篇文章中提到的,S3 主要用作 RESTful 服務。這意味著雖然我使用 Java 進行上傳部分,但我可以自由地使用其他語言進行下載部分。在這種情況下,我選擇使用 PHP,因為它已經在我正在使用的伺服器上可用,並且是……

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

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

瞭解更多

獲得支援

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

瞭解更多

即將舉行的活動

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

檢視所有