我們很高興地宣佈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 示例,演示了 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(方法簽名無變化)
該版本可從
此處下載。