我們很高興地宣佈 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 以類似的方式提供了 JDBC 的便利性,而 SqlMapTemplate 或 SqlMapClientTemplate 分別為 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,使用 Spring 管理的中間層和替代的 Spring/Struts Web 層來調整 iBATIS JPetStore
- 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(方法簽名沒有變化)
該版本可以從
此處 下載