我們很高興地宣布 Spring Framework 1.0 正式版 已經發佈。
1. 範圍
Spring 1.0 是一個完整的 Java/J2EE 應用程式框架,涵蓋以下功能:
- 現今最先進的輕量級容器,具有多種 setter 和建構子注入方式
- 基於 AOP Alliance 介面的 AOP 攔截框架,與核心容器整合
- JNDI 支援類別,允許輕鬆地將 Spring 管理的 bean 與 JNDI 定位的物件連結
- 應用程式內容概念,提供資源載入和訊息存取抽象
- 具有可插拔策略的通用交易管理,支援宣告式和程式化劃分
- 支援原始碼層級中繼資料,以 Commons Attributes 作為預設實作(例如,用於交易屬性)
- 通用 DAO 支援,提供用於任何資料存取策略的通用資料存取例外狀況層級結構
- JDBC 抽象,簡化資源和錯誤處理,也涵蓋 BLOB/CLOB 支援
- Hibernate 支援,提供 SessionFactory 管理和交易範圍的 ThreadLocal Sessions
- 支援 JDO 1.0 和 iBATIS SQL Maps 1.3/2.0,與 Spring 的交易管理整合
- 郵件傳送者抽象,特別支援 JavaMail,包括方便地處理檔案附件
- 對 Quartz 和 Timer 的排程支援,使其易於調用 Spring 管理的 bean 的方法
- 對 RMI、JAX-RPC 和 Caucho 的 Hessian/Burlap 的遠端支援,以便輕鬆公開 Spring 管理的 bean
- 用於存取和實作 EJB(本地和遠端)的便利類別
- Web 應用程式內容,用於在 Web 環境中載入 Spring 應用程式內容
- 靈活的 Web MVC 框架,建立在策略介面上並與各種視圖技術整合
Spring 的一個獨特優勢是能夠將宣告式交易應用於任何 POJO,使用 JTA 或本地交易策略:這允許在任何類型的環境中擁有輕量級交易業務物件,例如在普通 Tomcat 上執行的 Web 應用程式。 Spring 的交易管理也能够管理關聯的資源,例如 Hibernate Sessions,避免了自訂 ThreadLocal Sessions 的負擔。
基於資源管理基礎架構,Spring 的 HibernateTemplate 顯著簡化了基於 Hibernate 的 DAO 的實作,將典型的資料存取操作減少到單個語句。 以 Spring 的 JdbcTemplate 的形式,以及分別以 SqlMapTemplate 和 SqlMapClientTemplate 的形式,為 JDBC 和 iBATIS SQL Maps 1.3/2.0 提供類似的便利性。
Spring 的一個重要特徵是,它的許多功能可以單獨使用,而無需採用完全基於 Spring 的架構。 此外,Spring 管理的中介層及其提供的所有功能可以被重用於任何類型的環境中,無論是具有 Spring Web MVC、Struts、WebWork 或 Tapestry Web 層的 J2EE Web 應用程式,還是具有 Swing 使用者介面的獨立應用程式。
2. 範例和用法
Spring 發佈包附帶了許多範例應用程式。 「-with-dependencies」下載包含建置和執行它們所需的所有第三方函式庫。
- 我們的 JPetStore,採用 iBATIS JPetStore,具有 Spring 管理的中介層和替代的 Spring/Struts Web 層
- Petclinic,一個簡單的資料庫驅動的 Web 應用程式,提供替代的 Hibernate/JDBC 資料存取策略
- Countries,一個 Web 應用程式,說明地區和主題處理,以及 PDF 和 Excel Web 視圖的產生
- Image Database,一個單螢幕的 Web 應用程式,說明 BLOB/CLOB 處理和 Velocity/FreeMarker Web 視圖
- Tiles Example,展示了 Tiles 與 Spring 的 Web MVC 框架的使用
Spring 已經被用於大量的生產應用程式中,包括關鍵任務應用程式。 目前的採用者包括歐洲和美國的許多大型銀行和醫療保健組織。 在公開可見的應用程式中值得注意的 Spring 用法是:
- Matt Raible 的 AppFuse 應用程式骨架,採用 Spring 作為具有 Struts Web 層的中介層框架
- Atlassian 的新產品 Confluence,建立在 Spring 中介層和 WebWork2 Web 層之上
3. 升級
從 Spring 1.0 里程碑或候選發佈版本升級的使用者,請參閱
變更記錄;在細節上進行了一些改進。 自 1.0 RC2 以來的變更包括:
- AOP 支援升級到 AOP Alliance 1.0
- 在 BeanWrapperImpl 中更精密的索引和對應屬性處理
- 新的 ResourceLoader 介面,由 ApplicationContext 介面擴展
- ReloadableResourceBundleMessage 支援可配置的字元編碼
- MimeMessageHelper 支援可配置的字元編碼
- JdbcTemplate 具有新的通用「execute」方法和精簡的「query」方法
- iBATIS SQL Maps 2.0 支援升級到 SQL Maps 2.0 RC1
- 新增了對 FreeMarker 2.3 的支援
請注意以下關於 AOP 支援的升級問題:
- 您必須更新您的 aopalliance.jar
- AdvisorAutoProxyCreator 已重新命名為 DefaultAdvisorAutoProxyCreator
- TransactionAttributeSourceTransactionAroundAdvisor 已重新命名為 TransactionAttributeSourceAdvisor
- 自訂 Advisor 實作:getAdvice() 現在返回 org.aopalliance.aop.Advice 而不是 Object
- 如果您實作了 org.springframework.aop.MethodAfterReturningAdvice,請替換為 AfterReturningAdvice(方法簽章沒有變更)
該版本可以從
這裡下載