| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .txt | 3 |
| 摘要 | ||
文档详细记录了Spring Framework 1.2.7版本的变更日志,涵盖了多个包的功能更新、问题修复和新特性。主要更新包括ProxyFactoryBean新增autodetectInterfaces属性,AbstractBeanFactoryBasedTargetSource提供显式setTargetClass方法,BeanWrapperImpl优化了属性编辑器的注册和使用,以及对事务管理器和视图解析器的改进。文档还记录了多个模块的性能优化和新功能实现。 | ||
| AI总结 | ||
### 《Spring Framework 1.2.7 Changelog》中文总结
#### 1.2.7 版本更新(2006年2月27日)
##### `org.springframework.aop` 包
- **新增功能**:
- `ProxyFactoryBean` 添加 `autodetectInterfaces` 属性,支持类似 `TransactionProxyFactoryBean` 的接口检测方式。
- `AbstractBeanFactoryBasedTargetSource` 提供 `setTargetClass` 方法,支持显式设置目标类。
- `ThreadLocalTargetSource` 的同步机制优化,确保线程安全的销毁操作。
- `AbstractLazyInitTargetSource` 被弃用,推荐使用 `AbstractLazyCreationTargetSource`。
- `AbstractTraceInterceptor` 新增 `hideProxyClassNames` 属性,支持以目标类名称进行日志记录。
- `AbstractPerformanceMonitorInterceptor` 被弃用,推荐使用 `AbstractMonitoringInterceptor`。
- `DebugInterceptor` 修复多线程环境下的计数字段同步问题。
##### `org.springframework.beans` 包
- **改进**:
- `BeanWrapperImpl` 使用链表存储注册的编辑器,优先使用第一个匹配的编辑器。
- `BeanWrapperImpl` 缓存匹配超类或接口的编辑器,避免重复检查。
- `BeanWrapperImpl` 修复传递 `extractOldValueForEditor` 设置到嵌套 `BeanWrapper` 的问题。
- `BeanWrapperImpl` 在每次调用读写方法前进行可访问性检查。
- `BeanWrapperImpl` 支持将 `null` 值传递给 `PropertyEditor` 的 `setValue` 方法。
- `CustomCollectionEditor` 新增 `nullAsEmptyCollection` 标志,允许将 `null` 转换为空集合。
- `PropertyAccessorUtils` 修复 `getLastNestedPropertySeparatorIndex` 方法,正确处理无点的属性路径。
- `StringArrayPropertyEditor` 新增重载构造函数,支持自定义分隔符。
- `ArgumentConvertingMethodInvoke` 修复在复制的参数数组上执行转换的问题。
- `HierarchicalBeanFactory` 接口新增 `containsLocalBean` 方法,从 `AbstractApplicationContext` 重构而来。
- `AbstractBeanFactory` 允许子 bean 定义引用父 bean 的别名。
- `AbstractBeanFactory` 修复 `isFactoryBean` 方法的父 BeanFactory 委托问题。
- `AbstractBeanFactory` 优化避免内部 `NoSuchBeanDefinitionException` 的抛出和捕获。
- `AbstractBeanFactory` 修复单例 bean 未完成时的调试日志记录。
- `AbstractBeanFactory` 修复 prototype 创建时使用规范 bean 名称,确保暴露给 `BeanPostProcessor`。
- `AbstractAutowireCapableBeanFactory` 新增 `allowCircularReferences` 标志,禁止循环引用。
##### `org.springframework.util` 包
- **改进**:
- `ClassUtils` 的 `Name` 支持原始数组名称(如 `boolean[]`、`int[]`)。
- 修复 `ClassUtils` 的 `最长ShortNameAsProperty` 方法,正确使用 JavaBeans 去首字母大写规则。
##### `org.springframework.validation` 包
- **改进**:
- 参考文档新增验证和错误消息部分,以及数据绑定内容。
- `DataBinder` 默认提取旧字段值用于属性编辑器。
- `DataBinder` 新增 `setExtractOldValueForEditor` 方法,控制 getter 方法调用。
##### `org.springframework.web` 包
- **新增功能**:
- `XMLWebApplicationContext` 应用其类加载器到 `XMLBeanDefinitionReader`。
- 新增 `ServletContextParameterFactoryBean`,用于显式获取和暴露 `web.xml` 中的 `context-param`。
- `AcceptHeaderLocaleResolver` 和 `FixedLocaleResolver` 从 `setLocale` 方法抛出 `UnsupportedOperationException`。
- `FixedThemeResolver` 从 `setThemeName` 方法抛出 `UnsupportedOperationException`。
- `ResourceBundleViewResolver` 修复缓存工厂类的问题,避免重复创建。
- `MultiActionController` 支持验证器用于可选命令对象。
- `AbstractJasperReportsView` 新增默认 `exporterParameters` 映射,支持属性驱动填充。
- `AbstractJasperReportsSingleFormatView` 应用配置的导出编码作为 HTTP 响应编码。
---
#### 1.2.3 版本更新(2005年7月26日)
##### `org.springframework.aop` 包
- **改进**:
- `AbstractPoolingTargetSource` 的默认 `maxSize` 值改为 `-1`,表示无大小限制。
- `CommonsPoolTargetSource` 新增 `maxIdle`、`minIdle`、`maxWait` 等属性,与 Commons Pool 对齐。
- `DefaultAdvisorAutoProxyCreator` 修复顾问查找问题,避免因 FactoryBeans 导致的潜在未代理问题。
##### `org.springframework.beans` 包
- **改进**:
- `BeanWrapperImpl` 修复传递旧值到 `PropertyEditor` 的问题。
- `PagedListHolder` 修复在 `pageCount()` 方法中确定当前页数的问题。
- `AbstractBeanFactory` 重构 `factory-method` 类型确定逻辑。
- `AbstractBeanFactory` 修复在静态类型可确定时不创建 `factory-method` 类型的 bean。
- `AbstractAutowireCapableBeanFactory` 优化日志消息,明确区分构造器和工厂方法。
- `AbstractAutowireCapableBeanFactory` 优先匹配原始参数类型,而非转换后的参数类型。
##### `org.springframework.transaction` 包
- **改进**:
- `JtaTransactionManager` 新增 `jndiEnvironment` 属性,作为 `JndiTemplate` 的替代方案。
- `Transactional` 注解标记为 `@Inherited` 和 `@Documented`。
##### `org.springframework.util` 包
- **改进**:
- `PathMatcher` 重构为接口和 `AntPathMatcher` 实现类。
##### `org.springframework.web` 包
- **改进**:
- `URLPathHelper` 修复在 JDK 1.3 上的 URL 解码问题。
- `WebDataBinder` 新增字段标记支持,减少对 Servlet API 的依赖。
- `DispatcherServlet` 暴露 `LocaleResolver` 及当前 `Locale` 到 `LocaleContextHolder`。
- `BindStatus` 修复 HTML 转义问题,确保在无 `Errors` 对象时仍可转义。
- `EscapedErrors` 和 `BindTag` 支持对任意非空值进行 HTML 转义。
- `VelocityViewResolver` 新增 `toolboxConfigLocation` 属性,支持 `VelocityToolboxView`。
- `spring.ftl` �移除前缀,支持内部变量直接访问。
- `AbstractJasperReportsView` 升级到 JasperReports 0.6.6,使用 `JRDefaultCompiler` 替代 `JRBshCompiler`。
- `AbstractJasperReportsView` 新增 `reportCompiler` 属性,支持自定义 `JRCompiler` 实现。
- `AbstractJasperReportsView` 修复使用 `JasperPrint` 实例而非 `JasperReport` 实例。
- `JasperReportsMultiFormatView` 修复 `formatMappings` 配置问题,替换默认值。
---
#### 1.2 RC1 版本更新(2005年3月28日)
##### **总体改进**
- 移除所有自 1.1 版本前已弃用的类和方法。
- 将 AOP Alliance 接口整合到 `spring-aop.jar` 和 `spring.jar`,避免依赖 `aopalliance.jar`。
- 将 `spring-core.jar` 拆分为 `spring-core.jar` 和 `spring-beans.jar`。
##### `org.springframework.web` 包
- **新增功能**:
- 新增 `NestedServletException`,用于处理根本原因,由 `MultipartException` 继承。
- `ServletContextResourcePatternResolver` 修复处理绝对路径的问题。
- `CommonsMultipartResolver` 修复在转发/包含后重新检查标准 GET 请求参数。
- 新增多种 `RequestLoggingFilters`,支持 Commons Logging、ServletContext 日志和 Log4J(含 NDC 支持)。
- `FrameworkServlet` 暴露 `processRequest` 方法,供特殊 HTTP 方法调用。
- `BindStatus` 修复错误消息延迟解析问题,避免 `NoSuchMessageException`。
- `RedirectView` 修复在 JDK 1.4+ 上的方案特定编码问题。
- `AbstractPdfView` 新增 `newWriter` 和 `prepareWriter` 回调,支持注册页面事件监听器。
- `AbstractXsltView` 新增 `uriResolver` 属性,支持为每个 `Transformer` 应用 URI 解析器。
- 新增 `AbstractJExcelView`,支持使用 JExcelApi 生成 Excel 文件。
- `AbstractJasperReportsView` 支持 JasperReports 1.0.1+,修复不兼容的 API 变更。
- 新增 `postProcessReport` 回调,支持自定义 `JasperPrint` 对象修改。
- `AbstractJasperReportsSingleFormatView` 修复 `createExporter()` 方法返回 `JExporter` 而非 `JRAbstractExporter`。
- 新增 `WebApplicationContextVariableResolver`,支持 JSF,暴露 `webApplicationContext` 变量。
- `UrlFilenameController` 重构为 `AbstractController`,新增 `prefix` 和 `suffix` 功能。
---
#### 1.2.4 版本更新(2005年8月26日)
##### `org.springframework.aop` 包
- **改进**:
- `AbstractTraceInterceptor` 新增 `loggerName` 属性,支持指定日志记录类别。
- `CommonsPoolTargetSource` 新增 `whenExhaustedAction` 和 `whenExhaustedActionName` 属性。
- `Cglib2AopProxy` 修复对最终方法无法代理的警告日志。
- `BeanWrapperImpl` 新增 `setExtractOldValueForEditor` 方法,控制 setter 方法调用。
- `BeanWrapperImpl` 修复 `getPropertyType` 方法,优先使用自定义编辑器和注册类型。
##### `org.springframework.util` 包
- **改进**:
- `StringUtils` 新增 `split` 和 `splitArrayElementsIntoProperties` 方法(来自 Acegi)。
- `NumberUtils` 的 `parseNumber` 方法新增字符串去空格功能,支持 `Byte` 类型。
##### `org.springframework.web` 包
- **改进**:
- `WebContentGenerator` 修复 `Cache-Control` 头的 `no-store` 值设置,避免 Firefox 缓存。
- `AbstractCachingViewResolver` 修复缓存视图实例的问题,不再调用 `setApplicationContext`。
- `UrlBasedViewResolver` 重构 `loadView` 方法,分离视图实例化和生命周期管理。
- `VelocityViewResolver` 和 `ResourceBundleViewResolver` 修复使用 `GenericWebApplicationContext` 加载视图定义的问题。
---
#### 1.2 RC2 版本更新(2005年4月18日)
##### `org.springframework.aop` 包
- **改进**:
- `ProxyFactoryBean` 新增 `targetName` 属性,作为 `interceptorNames` 数组末尾的备用名称。
- `RegexpMethodPointcutAdvisor` 默认使用 `JdkREGEXPMethodPointcut`,除非指定 `perl5` 模式。
##### `org.springframework.beans` 包
- **改进**:
- `BeanUtils` 的 `isSimpleProperty` 方法新增对布尔包装类的支持。
- `BeanWrapperImpl` 新增默认 `CustomBooleanEditor`,支持布尔字段的多种标志值。
- 新增 `CharacterEditor`,支持 `java.lang.Character` 类型。
##### `org.springframework.web` 包
- **改进**:
- 新增 `CharacterEncodingFilter`,支持指定字符集,通常用于处理浏览器未发送的编码。
- `ContextLoader` 和 `WebApplicationContextUtils` 修复上下文初始化异常记录问题。
- `ServletRequestDataBinder` 新增 `bindEmptyMultipartFiles` 设置。
- `BaseCommandController` 新增 `onBind` 回调,支持自定义绑定后的处理。
- `AbstractFormController` 修复无会话时调用 `formBackingObject` 方法的问题。
- `ModelAndView` 新增 `setView` 和 `setViewName` 方法,支持拦截器后的视图处理。
- `TilesView` 重构为 `AbstractTilesView`,支持子类扩展。
- `TilesView` 修复 `DefinitionsFactory` 初始化问题,确保在未找到时抛出异常。
- `TilesView` 修复内容类型设置问题,避免未提交响应时的无效设置。
- `TilesView` 新增对路径属性的支持,允许覆盖布局页面的路径。
- `VelocityView` 新增 `encoding` 属性,支持指定视图文件编码。
- `VelocityView` 移除默认配置位置,支持自定义配置。
- 新增 `FreeMarkerView` 及相关支持,类似 Velocity 的配置方式。
---
#### 1.0 RC2 版本更新(2004年3月1日)
##### `org.springframework.aop` 包
- **改进**:
- 简化 `Advisor` 接口层次,移除非必要的子接口。
- 修复基于元数据的自动代理支持,适配 Commons Attributes 快照。
##### `org.springframework.beans` 包
- **改进**:
- `PropertyValue` 修复 `equals` 和 `hashCode` 实现。
- `BeanWrapperImpl` 新增对转换后字符串数组值的支持。
- `CustomNumberEditor` 新增对 `Short`、`BigInteger` 和 `BigDecimal` 的支持。
- `AbstractBeanFactory` 和 `AbstractAutowireCapableBeanFactory` 分离实现。
- `PropertyPlaceholderConfigurer` 新增 `systemPropertiesMode` 设置,支持 `never`、`Fallback` 和 `override` 模式。
- 新增 `PreferencesPlaceholderConfigurer`,支持 J2SE 1.4 偏好设置。
- 新增 `CustomEditorConfigurer`,支持通过声明方式注册自定义 `PropertyEditor`。
##### `org.springframework.web` 包
- **改进**:
- `MultiActionController` 修复 `NoSuchRequestHandlingMethodException` 的处理,改为返回 404 状态码。
- `AbstractWizardFormController` 修复在非 POST 请求下处理 `finish` 和 `cancel` 的问题。
- `AbstractWizardFormController` 新增 `validatePage` 方法,支持带有 `finish` 标志的验证。
- `TransformTag` 修复 HTML 转义问题,确保与 TLD 一致。
- `AbstractXsltView` 修复响应编码在 XSLT 转换中的应用。
- 新增 JSF 支持,通过 `DelegatingVariableResolver` 将变量名解析为 Spring bean。
---
#### 1.1 RC1 版本更新(2004年7月28日)
##### `org.springframework.aop` 包
- **改进**:
- 弃用 `addInterceptor`、`addThrowsAdvice` 等基于 `Advice` 子类型的接口,推荐使用 `addAdvice`。
- `ProxyConfig` 新增 `opaque` 属性,防止代理被强制转换为 `Advised`,增强安全性。
- 修复调试日志中调用 `toString()` 方法的问题,避免与 Axis 代理冲突。
- 确保 AOP 代理实现 `Serializable` 接口,前提是所有advisor 和 `TargetSource` 都实现 `Serializable`。
- `ReflectiveMethodInvocation` 新增 `invocableClone()` 方法,支持多次调用 `proceed()`。
- `Pointcuts` 新增 `SETTERS` 和 `GETTERS` 常量,支持程序matic 使用。
##### `org.springframework.beans` 包
- **改进**:
- `BeanUtils` 的 `instantiateClass` 方法新增对不可访问构造函数的支持。
- `BeanWrapperImpl` 支持键中包含点(如 `map[my.key]`)。
- `BeanWrapperImpl` 修复对索引和映射属性的读写检查问题。
- `BeanWrapperImpl` 修复嵌套 `BeanWrapper` 的缓存问题。
- `BeanWrapperImpl` 支持将值自动转换为数组,而不仅限于 `List`。
- `PropertiesEditor` 修复对 `Map` 到 `Properties` 的转换支持。
- 新增 `ArgumentConvertingMethodInvoker`,支持通过 `BeanWrapperImpl` 转换参数。
- `MethodInvokingFactoryBean` 继承 `ArgumentConvertingMethodInvoker`,支持上下文属性。
##### `org.springframework.web` 包
- **改进**:
- `ContextLoader` 和 `FrameworkServlet` 新增上下文创建的灵活性。
- `FrameworkServlet` 新增 `contextConfigLocation` 属性,支持自定义配置位置。
- `DispatcherServlet` 修复对 `RuntimeException` 的默认处理。
- `HandlerMappings` 和 `ViewResolvers` 允许抛出任意异常。
- `SimpleUrlHandlerMapping` 和 `BeanNameUrlHandlerMapping` 支持按需加载 prototype 处理器。
- 移除 `UrlHandlerAware` 支持。
- `HandlerInterceptor` 新增 `postHandle` 和 `afterCompletion` 方法。
- 新增 `HandlerInterceptorAdapter`,简化实现。
- `RequestContextUtils` 修复 `ServletException` 转换为 `IllegalStateException` 的问题。
- `InternalResourceViewResolver` 和 `XmlViewResolver` 修复缓存键生成问题。
- 移动 `SimpleMappingExceptionResolver` 到 `web.servlet.handler` 包。
- 移动 `UserRoleAuthorizationInterceptor` 到 `web.servlet.handler` 包。
- 移动 `WebContentGenerator` 到 `web.servlet.support` 包。
- 新增 `WebContentInterceptor`,支持请求/响应检查。
- `MultiActionController` 继承 `AbstractController`,支持更多检查。
- `AbstractWizardFormController` 修复 `handleInvalidSubmit` 方法,支持显示新向导的初始页面。
- 新增 `AbstractUrlBasedView` 和 `UrlBasedViewResolver`,统一处理视图 URL。
- `VelocityView` 新增 `url` 属性,支持从 `AbstractUrlBasedView` 继承。
- 新增 `VelocityViewResolver`,支持通过 URL 加载视图。
- 移除 `VelocityView` 的 `exposeDateFormatter` 和 `exposeCurrencyFormatter` 属性。
- 新增 `dateToolAttribute`,支持暴露 Velocity Tools 1.0 的 `DateTool`。
- 移动 `org.springframework.web.servlet.view.velocity.VelocityConfiguration` 到 `VelocityConfig`。
##### 新增包 `org.springframework.metadata`
- 提供对源码级别和其他元数据的Facade,集成 Jakarta Commons Attributes 作为默认实现。
- 新增基于元数据的自动代理支持,提供类似 .NET 的属性驱动声明式服务。
---
以上为 Spring Framework 1.2.7 及其相关版本的主要更新内容,涵盖 AOP、Beans、Util、Validation 和 Web 等核心模块的改进和新功能。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
80 页请下载阅读 -
文档评分














Spring Framework 1.2.7 Changelog
Spring Framework 1.2.7 Reference