我们很高兴地宣布 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(方法签名没有变化)
该版本可以从
此处 下载