領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多正如一些使用者可能已經注意到的,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 模式名稱空間的支援,Spring 2.5 引入了新的“context”和“jms”配置名稱空間。後者是 Spring 配置名稱空間所能提供的增值的絕佳示例——如果您正在使用 Spring 2.0 風格的訊息驅動物件,絕對值得采納!此外,Spring 也支援無需 XML 的程式化引導(如果需要);我們確保為這種引導風格提供了 Spring 2.5 的所有便利功能。
作為一個核心主題,Spring 2.5 為應用程式元件中的配置註解提供了全面的支援。這緊隨 Spring 2.0 的步伐,Spring 2.0 開始支援 JMX 的 @Required、@Transactional、@ManagedResource 以及 JPA 的 @PersistenceContext / @PersistenceUnit。Spring 2.5 支援 JSR 250 的 @PostConstruct(用於初始化方法)、@PreDestroy(用於銷燬方法)和 @Resource(用於注入命名託管物件),以及 JAX-WS 2.0 的 @WebServiceRef(用於注入 Web 服務客戶端檢視)和 @EJB(用於注入會話 Bean 客戶端檢視)。此外,Spring 2.5 提供了一個可以統領一切的配置註解:@Autowired(用於型別驅動的自動裝配,可選擇性地與限定符註解結合使用,從一組匹配的候選物件中選擇特定物件)。
對於 Web 控制器,Spring 2.5 走得更遠:新引入的 @RequestMapping、@RequestParam 和 @ModelAttribute 註解允許編寫註解式的 Web MVC 控制器,而無需實現特定的介面或繼承特定的基類,完全基於註解對映到特定的請求路徑。這本質上是經典 MultiActionController 方法的下一代,也能夠非常靈活地處理表單。當然,作為一等公民的 Spring 管理物件,這些控制器可以使用前面提到的核心生命週期和注入註解,例如 @Autowired…… Spring 2.5 中修訂的 PetClinic 示例應用程式展示了這些功能的運用,PetClinic 的所有 Web 控制器現在都以註解方式實現。快來看看吧!
Spring 2.5 還為整合測試引入了新的基於註解的 TestContext 框架,支援 JUnit 3.8、JUnit 4.4 和 TestNG。這是 Spring 2.0 對 JUnit 3.8 的基類的引人注目的替代方案,支援 Spring 2.5 的核心配置註解(如 @Autowired)用於測試類,並透過註解提供靈活的測試上下文配置。這功能強大、靈活且松耦合:Spring 風格的上下文管理應用於整合測試領域。
作為最先進的註解使用級別,Spring 2.5 允許自動檢測類路徑中的註解元件,使用 @Repository、@Service、@Controller 或通用的 @Component 等構造型註解。這可以幫助您完全避免顯式的 XML Bean 定義,透過隱式地註冊指定包中的註解元件。這可以用於特定目的,例如自動檢測 Web 層中的控制器,而服務層元件仍然顯式定義。
請注意,Spring 2.5 支援對任何型別的託管元件使用相同的配置註解:Spring 定義的 DAO、服務 Bean、Web 控制器;透過掃描類路徑檢測到的元件;由 AspectJ 配置器 Aspect 配置的 @Configurable 物件;由測試上下文框架執行的測試類。所有這些元件都可以例如使用 @Autowired 進行注入,在所有這些不同的元件型別之間具有一致的語義。
總而言之,請注意 Spring 2.5 當然仍然支援“經典”Spring 配置方法作為一等公民。配置註解是一種可以在不同級別採用的選項:從元件類中的配置“提示”,補充 XML Bean 定義,到透過註解表達其整個配置的自給自足的元件。或者當然也可以根本不使用註解:如果您喜歡外部化配置的架構優勢,這是一個完全可行的選擇,並且顯然也是 Java 1.4 的主要選項。