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