我们很高兴地宣布 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 会话
- 对 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 会话,避免自定义 ThreadLocal 会话的负担。
基于资源管理基础设施,Spring 的 HibernateTemplate 显着简化了基于 Hibernate 的 DAO 的实现,将典型的数据访问操作减少到单个语句。JDBC 中提供了类似级别的便利,形式为 Spring 的 JdbcTemplate,以及 iBATIS SQL Maps 1.3/2.0 中的 SqlMapTemplate 和 SqlMapClientTemplate。
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 示例,演示了在 Spring 的 Web MVC 框架中使用 Tiles
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(方法签名不变)
可以从
这里 下载发行版