📄 changelog.txt
字号:
* DefaultMessageListenerContainer avoids deadlock between Connection and Session through the use of a shared monitor
Package org.springframework.jndi
* fixed "jee:jndi-lookup" tag to correctly handle "default-value" and "default-ref" attributes
Package org.springframework.orm
* Hibernate SpringSessionSynchronization explicitly disconnects on suspend/completion (to make "on_close" work on JBoss)
Package org.springframework.scheduling
* fixed CommonJ TimerManagerFactoryBean to not require the "scheduledTimerListeners" property
Package org.springframework.test
* TestContextManager logs TestExecutionListener exceptions at error/warn level instead of info/debug
Package org.springframework.transaction
* JtaTransactionManager swallows IllegalStateException when synchronizing with existing transaction (for JBoss 4.2)
Package org.springframework.web
* CommonsMultipartResolver detects multiple files for the same field name and throws a corresponding exception
* RequestToViewNameTranslator kicks in before the "HandlerInterceptor.postHandle" phase
* RequestToViewNameTranslator's "getViewName" is allowed to return null if no default found
* fixed AnnotationMethodHandlerAdapter to expose the implicit model even when using request-to-view-name translation
* fixed AnnotationMethodHandlerAdapter to correctly match parameters even in case of request method specified as well
* DispatcherPortlet/AnnotationMethodHandlerAdapter swallows IllegalStateException when setting implicit render parameter
* Portlet AnnotationMethodHandlerAdapter preserves implicit model from action phase to render phase
* Portlet AnnotationMethodHandlerAdapter applies cache settings (prevents caching when session attributes are involved)
* Portlet AnnotationMethodHandlerAdapter allows default @RequestMapping annotations for action as well as render methods
* Portlet AnnotationMethodHandlerAdapter resolves PortletPreferences, PortletMode, WindowState, PortalContext arguments
* factored out AbstractWizardFormController's "getTargetPage" logic into WebUtils/PortletUtils, for reuse in custom code
* InternalResourceView explicitly sets content type on response in include case (for correct charset handling on Tomcat)
* exposed applicable standard HTML attributes on JSP "form:option" and "form:options" tags
* JSP form tags always autogenerate valid HTML ids (not including "[" or "]" characters from array element properties)
Changes in version 2.5 RC2 (2007-11-12)
---------------------------------------
General
* introduced complete rewrite of the Spring MVC step-by-step guide for version 2.5
Package org.springframework.aop
* fixed garbage collection problem with CGLIB proxies, now holding onto the Advised configuration independent of factory
Package org.springframework.beans
* DefaultListableBeanFactory now supports autowiring of FactoryBean instances 'by type'
* revised DefaultListableBeanFactory's exception handling for clearer wrapping of nested exceptions
* DefaultListableBeanFactory performs bean creation within a PrivilegedAction (for SecurityManager compatibility)
* optimized DefaultListableBeanFactory's invocation of setter methods for re-created bean instances
* optimized DefaultListableBeanFactory's invocation of post-processor methods
* changed XmlReaderContext's "getReader()" to expose the XmlBeanDefinitionReader again (for backwards compatibility)
* AutowiredAnnotationBeanPostProcessor caches determined candidate constructors per bean class
* RequiredAnnotationBeanPostProcessor caches validated bean names, skipping re-validation for the same bean
* added bean type argument to MergedBeanDefinitionPostProcessor (for InitDestroyAnnotationBeanPostProcessor)
Package org.springframework.context
* "context:mbean-export" autodetects WebLogic and WebSphere, performing an appropriate MBeanServer lookup
* "context:mbean-export" falls back to a simple MBeanExporter on JDK 1.4, detecting standard MBeans
* introduced "context:mbean-server" configuration element, for setting up a standalone MBeanServer reference
* "context:load-time-weaver" automatically activates "spring-configured" if AspectJ weaving is enabled
* "context:load-time-weaver"'s temporary ClassLoader for type matching uses a fully isolated loader for each match
Package org.springframework.dao
* PersistenceExceptionTranslationAdvisor detects @Repository on interfaces as well
Package org.springframework.jca
* added missing "refresh()" call to SpringContextResourceAdapter's ApplicationContext
Package org.springframework.jdbc
* TransactionAwareDataSourceProxy exposes a special "toString()" result for its Connection proxies
* fixed SingleColumnRowMapper to use passed-in required type in the default "convertValueToRequiredType" implementation
* SimpleJdbcCallOperations and SimpleJdbcInsertOperations return the interface type (not the impl) for method chaining
Package org.springframework.jndi
* "jee:jndi-lookup" supports "default-value" and "default-ref" attributes, translated to a default object
Package org.springframework.mail
* MailSendExceptions keeps failed messages in a LinkedHashMap, allowing for access in the order of sending
* added "getMessageExceptions()" accessor to MailSendException, with "getFailedMessages()" being transient now
Package org.springframework.orm
* fixed Jpa/JdoTransactionManager to correctly suspend and resume even for dialects without JDBC Connection retrieval
* SqlMapClientTemplate explicitly checks for TransactionAwareDataSourceProxy, avoiding double synchronization
Package org.springframework.remoting
* RmiClientInterceptor and AbstractSlsbInvokerInterceptor do not consider MarshalException as connect failure anymore
Package org.springframework.stereotype
* @Component, @Repository, etc are not marked as inherited anymore (i.e. inheritance checks to be performed explicitly)
Package org.springframework.test
* AbstractGenericContextLoader provides an opportunity for subclasses to customize the context before calling refresh
* revised TestExecutionListener method signatures to declare Exception instead of Throwable
Package org.springframework.transaction
* "tx:jta-transaction-manager" autodetects Oracle OC4J as well, in addition to WebLogic and WebSphere
Package org.springframework.web
* ContextLoader provides an opportunity for subclasses to customize the context before calling refresh
* made AbstractController's handleRequest entry point method non-final (allowing for overriding and CGLIB proxying)
* AbstractUrlHandlerMapping always takes the first matching path (in case of multiple path patterns of equal length)
* AnnotationMethodHandlerAdapter for Servlet MVC exposes UrlPathHelper and PathMatcher configuration properties
* AnnotationMethodHandlerAdapter for Servlet MVC supports MethodNameResolver for resolving default handler methods
* AnnotationMethodHandlerAdapter for Servlet MVC supports path patterns for @RequestMapping at the method level as well
* AnnotationMethodHandlerAdapter for Servlet MVC always prevents HTTP caching in case of @SessionAttributes specified
* reworked @RequestMapping's "type" attribute into "method", accepting strongly typed @RequestMethod enum values
* revised AnnotationMethodHandlerAdapter's resolution of multiple matching handler methods to take params into account
* @RequestParam's "value" attribute is not required anymore, defaulting to the method parameter name (if available)
* added "types" attribute to @SessionAttributes, allowing to enumerate model attributes types instead of names
* AbstractJasperReportsSingleFormatView converts exporter parameter values in the model (if appropriate)
* InternalResourceView lets explicit model attributes override Spring beans in case of "exposeContextBeansAsAttributes"
* JstlView does not set "exposeContextBeansAsAttributes" flag to "true" by default (analogous to InternalResourceView)
* JSF 1.1 DelegatingVariableResolver checks original VariableResolver first again (for strict backwards compatibility)
* introduced JSF 1.1 SpringBeanVariableResolver, letting Spring bean definitions override other attributes of same name
* renamed JSF 1.2 DelegatingFacesELResolver to SpringBeanFacesELResolver, indicating its concrete lookup strategy
* fixed Tiles 1.x TilesConfigurer to explicitly set the factory name to empty String by default
Changes in version 2.5 RC1 (2007-10-22)
---------------------------------------
General
* introduced spring-framework-with-docs.zip distribution; reduced spring-framework.zip to the minimal binaries
* spring.jar does not include Servlet Web MVC support anymore; add spring-webmvc.jar separately
* spring.jar and spring-core.jar include repackaged version of ASM 2.2.3 (avoiding side effects with other ASM versions)
* spring-orm.jar contains the web ORM support (again), in order to avoid split packages across bundles
* spring-web.jar includes the entire Hessian, Burlap, HTTP invoker, JAX-RPC and JAX-WS support (avoiding split packages)
* removed outdated Countries sample application
* revised PetClinic sample application into a full-fledged Java 5 showcase (annotation-based configuration etc)
* revised default handling in BeanDefinitionParsers for XML config namespaces to work without XSD validation as well
* updated Spring's JDO support to require JDO 2.0 or higher, with early support for JDO 2.1 features
Package org.springframework.aop
* revised AdvisedSupport to avoid lock contention for method cache lookups (using a concurrent map with special keys)
* fixed AspectJ pointcut handling to strictly match generic return types according to Java language rules
* AspectJ pointcut matching only registers LocalVariableTableParameterNameDiscoverer if ASM is present on the classpath
* removed unused pointcut type attribute from "spring-aop-2.5.xsd"
Package org.springframework.beans
* BeanWrapperImpl obtains old value with converted key in case of a Map with non-String keys
* TypeMismatchException and MethodInvocationException are serializable even in case of non-serializable property values
* URIEditor only tries to resolve "classpath:" locations if explicitly constructed with a ClassLoader
* URIEditor converts spaces in location values into "%20" quotes (as required by the URI format)
* exposed "autowireCandidate" property in BeanDefinition interface (avoiding casts to AbstractBeanDefinition)
* deprecated ConfigurableBeanFactory's "registerCustomEditor" in favor of "addPropertyEditorRegistrar"
* AbstractBeanFactory ignores PropertyEditorRegistrars which tried to obtain a currently created bean
* revised AbstractBeanFactory to detect FactoryBeans which are in turn created through factory methods
* DefaultListableBeanFactory freshly resolves autowired arguments even for cached constructors (re-resolving prototypes)
* DefaultListableBeanFactory removes a singleton bean instance if a new bean definition gets registered
* DefaultListableBeanFactory fully destroys singleton bean instance when the corresponding bean definition gets replaced
* DefaultListableBeanFactory resets the caches for all derived beans as well if a bean definition gets replaced
* fixed CglibSubclassingInstantiationStrategy to avoid CGLIB class leak for inner prototypes with MethodReplacer usage
* XmlBeanDefinitionReader initializes default EntityResolver lazily, avoiding classpath scan in case of custom resolver
* DefaultNamespaceHandlerResolver exposes public DEFAULT_HANDLER_MAPPINGS_LOCATION constant
* DefaultNamespaceHandlerResolver loads NamespaceHandler mappings and classes lazily (only when namespace actually used)
* fixed BeanDefinitionParserDelegate to correctly parse property sub-elements even with custom name for beans namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -