# Deprecated API

## Contents

- Deprecated Packages
- Deprecated Interfaces
- Deprecated Classes
- Deprecated Exceptions
- Deprecated Annotation Types
- Deprecated Fields
- Deprecated Methods
- Deprecated Constructors
- Deprecated Enum Constants

- Deprecated Packages
  Package and Description
  org.springframework.web.struts

- Deprecated Interfaces
  Interface and Description
  org.springframework.core.ConcurrentMap as of Spring 3.0, since standard `ConcurrentMap` is available on Java 5+ anyway
  org.springframework.remoting.jaxrpc.JaxRpcServicePostProcessor in favor of JAX-WS support in `org.springframework.remoting.jaxws`
  org.springframework.orm.jdo.JdoCallback as of Spring 3.1, in favor of native PersistenceManager usage (see `TransactionAwarePersistenceManagerFactoryProxy` and `SpringPersistenceManagerProxyBean`)
  org.springframework.orm.jdo.JdoOperations as of Spring 3.1, in favor of native PersistenceManager usage (see `TransactionAwarePersistenceManagerFactoryProxy` and `SpringPersistenceManagerProxyBean`)
  org.springframework.orm.jpa.JpaCallback as of Spring 3.1, in favor of native EntityManager usage (typically obtained through `@PersistenceContext`)
  org.springframework.orm.jpa.JpaOperations as of Spring 3.1, in favor of native EntityManager usage (typically obtained through `@PersistenceContext`). Note that this interface did not get upgraded to JPA 2.0 and never will.
  org.springframework.core.enums.LabeledEnum as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.core.enums.LabeledEnumResolver as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.jdbc.core.simple.SimpleJdbcOperations since Spring 3.1 in favor of `JdbcOperations` and `NamedParameterJdbcOperations`. The JdbcTemplate and NamedParameterJdbcTemplate now provide all the functionality of the SimpleJdbcTemplate.
  org.springframework.ejb.support.SmartSessionBean as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  org.springframework.orm.ibatis.SqlMapClientCallback as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
  org.springframework.orm.ibatis.SqlMapClientOperations as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)

- Deprecated Classes
  Class and Description
  org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractTransactionalJUnit4SpringContextTests`)
  org.springframework.test.jpa.AbstractAspectjJpaTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
  org.springframework.core.enums.AbstractCachingLabeledEnumResolver as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.web.servlet.mvc.AbstractCommandController as of Spring 3.0, in favor of annotated controllers
  org.springframework.web.portlet.mvc.AbstractCommandController as of Spring 3.0, in favor of annotated controllers
  org.springframework.test.AbstractDependencyInjectionSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit4SpringContextTests`)
  org.springframework.ejb.support.AbstractEnterpriseBean as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  org.springframework.web.servlet.mvc.AbstractFormController as of Spring 3.0, in favor of annotated controllers
  org.springframework.web.portlet.mvc.AbstractFormController as of Spring 3.0, in favor of annotated controllers
  org.springframework.core.enums.AbstractGenericLabeledEnum as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.ejb.support.AbstractJmsMessageDrivenBean as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  org.springframework.test.jpa.AbstractJpaTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
  org.springframework.test.context.junit38.AbstractJUnit38SpringContextTests as of Spring 3.1, in favor of using `AbstractJUnit4SpringContextTests`
  org.springframework.core.enums.AbstractLabeledEnum as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.orm.ibatis.support.AbstractLobTypeHandler as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
  org.springframework.ejb.support.AbstractMessageDrivenBean as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  org.springframework.test.web.AbstractModelAndViewTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`) or `ModelAndViewAssert` with JUnit 4 and TestNG.
  org.springframework.ejb.support.AbstractSessionBean as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  org.springframework.test.AbstractSingleSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit4SpringContextTests`)
  org.springframework.test.AbstractSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit4SpringContextTests`)
  org.springframework.ejb.support.AbstractStatefulSessionBean as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  org.springframework.ejb.support.AbstractStatelessSessionBean as of Spring 3.2, in favor of implementing EJBs in EJB 3 style
  org.springframework.test.AbstractTransactionalDataSourceSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractTransactionalJUnit4SpringContextTests`)
  org.springframework.test.context.junit38.AbstractTransactionalJUnit38SpringContextTests as of Spring 3.1, in favor of using `AbstractTransactionalJUnit4SpringContextTests`
  org.springframework.test.AbstractTransactionalSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractTransactionalJUnit4SpringContextTests`)
  org.springframework.web.servlet.mvc.AbstractWizardFormController as of Spring 3.0, in favor of annotated controllers
  org.springframework.web.portlet.mvc.AbstractWizardFormController as of Spring 3.0, in favor of annotated controllers
  org.springframework.web.servlet.view.xslt.AbstractXsltView since Spring 2.5; superseded by `XsltView` and its more flexible `XsltView.locateSource(java.util.Map<java.lang.String, java.lang.Object>)` mechanism
  org.springframework.web.struts.ActionSupport as of Spring 3.0
  org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter in Spring 3.2 in favor of `RequestMappingHandlerAdapter`
  org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver as of Spring 3.2, in favor of `ExceptionHandlerExceptionResolver`
  org.springframework.test.AssertThrows favor use of JUnit 4's `@Test(expected=...)` support
  org.springframework.web.struts.AutowiringRequestProcessor as of Spring 3.0
  org.springframework.web.struts.AutowiringTilesRequestProcessor as of Spring 3.0
  org.springframework.web.servlet.mvc.BaseCommandController as of Spring 3.0, in favor of annotated controllers
  org.springframework.web.portlet.mvc.BaseCommandController as of Spring 3.0, in favor of annotated controllers
  org.springframework.beans.factory.config.BeanReferenceFactoryBean as of Spring 3.2, in favor of using regular bean name aliases (which support placeholder parsing since Spring 2.5)
  org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
  org.springframework.orm.ibatis.support.BlobSerializableTypeHandler as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
  org.springframework.util.CachingMapDecorator as of Spring 3.2, to be removed along with LabeledEnum support
  org.springframework.web.servlet.mvc.CancellableFormController as of Spring 3.0, in favor of annotated controllers
  org.springframework.orm.ibatis.support.ClobStringTypeHandler as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
  org.springframework.http.client.CommonsClientHttpRequestFactory In favor of `HttpComponentsClientHttpRequestFactory`
  org.springframework.beans.factory.config.CommonsLogFactoryBean as of Spring 3.2, in favor of a bean definition that points to the bean class "org.apache.commons.logging.LogFactory" and the factory method "getLog", passing in the log name as constructor argument
  org.springframework.ui.velocity.CommonsLoggingLogSystem as of Spring 3.2, in favor of Velocity 1.6's `CommonsLogLogChute`
  org.springframework.web.servlet.view.tiles.ComponentControllerSupport as of Spring 3.0
  org.springframework.scheduling.backportconcurrent.ConcurrentTaskExecutor as of Spring 3.2, in favor of using the native JDK 6 concurrent support
  org.springframework.test.ConditionalTestCase as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit4SpringContextTests`)
  org.springframework.web.struts.ContextLoaderPlugIn as of Spring 3.0
  org.springframework.scheduling.backportconcurrent.CustomizableThreadFactory as of Spring 3.2, in favor of using the native JDK 6 concurrent support
  org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping in Spring 3.2 in favor of `RequestMappingHandlerMapping`
  org.springframework.jms.listener.DefaultMessageListenerContainer102 as of Spring 3.0, in favor of the JMS 1.1 based `DefaultMessageListenerContainer`
  org.springframework.web.struts.DelegatingActionProxy as of Spring 3.0
  org.springframework.web.struts.DelegatingActionUtils as of Spring 3.0
  org.springframework.web.struts.DelegatingRequestProcessor as of Spring 3.0
  org.springframework.web.struts.DelegatingTilesRequestProcessor as of Spring 3.0
  org.springframework.scheduling.timer.DelegatingTimerTask as of Spring 3.0, in favor of the `scheduling.concurrent` package which is based on Java 5's `java.util.concurrent.ExecutorService`
  org.springframework.web.jsf.DelegatingVariableResolver as of Spring 3.2, in favor of the JSF 1.2 based `SpringBeanFacesELResolver`
  org.springframework.web.struts.DispatchActionSupport as of Spring 3.0
  org.springframework.web.util.ExpressionEvaluationUtils as of Spring 3.2, in favor of the JSP 2.0+ native support for embedded expressions in JSP pages (also applying to tag attributes)
  org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor in favor of JAX-WS support in `org.springframework.remoting.jaxws`
  org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean in favor of JAX-WS support in `org.springframework.remoting.jaxws`
  org.springframework.orm.jdo.JdoAccessor as of Spring 3.1, in favor of native PersistenceManager usage (see `TransactionAwarePersistenceManagerFactoryProxy` and `SpringPersistenceManagerProxyBean`)
  org.springframework.orm.jdo.support.JdoDaoSupport as of Spring 3.1, in favor of native PersistenceManager usage (see `TransactionAwarePersistenceManagerFactoryProxy` and `SpringPersistenceManagerProxyBean`)
  org.springframework.orm.jdo.JdoInterceptor as of Spring 3.1, in favor of native PersistenceManager usage and AOP-driven exception translation through `PersistenceExceptionTranslationPostProcessor`
  org.springframework.orm.jdo.JdoTemplate as of Spring 3.1, in favor of native PersistenceManager usage (see `TransactionAwarePersistenceManagerFactoryProxy` and `SpringPersistenceManagerProxyBean`)
  org.springframework.jms.core.JmsTemplate102 as of Spring 3.0, in favor of the JMS 1.1 based `JmsTemplate`
  org.springframework.jms.connection.JmsTransactionManager102 as of Spring 3.0, in favor of the JMS 1.1 based `JmsTransactionManager`
  org.springframework.orm.jpa.JpaAccessor as of Spring 3.1, in favor of native EntityManager usage (typically obtained through `@PersistenceContext`)
  org.springframework.orm.jpa.support.JpaDaoSupport as of Spring 3.1, in favor of native EntityManager usage (typically obtained through `@PersistenceContext`)
  org.springframework.orm.jpa.JpaInterceptor as of Spring 3.1, in favor of native EntityManager usage (typically obtained through `@PersistenceContext`) and AOP-driven exception translation through `PersistenceExceptionTranslationPostProcessor`
  org.springframework.orm.jpa.JpaTemplate as of Spring 3.1, in favor of native EntityManager usage (typically obtained through `@PersistenceContext`) Note that this class did not get upgraded to JPA 2.0 and never will.
  org.springframework.core.enums.LetterCodedLabeledEnum as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.orm.hibernate3.LocalCacheProviderProxy as of Spring 3.0, following Hibernate 3.3's deprecation of the CacheProvider SPI
  org.springframework.remoting.jaxrpc.LocalJaxRpcServiceFactory in favor of JAX-WS support in `org.springframework.remoting.jaxws`
  org.springframework.remoting.jaxrpc.LocalJaxRpcServiceFactoryBean in favor of JAX-WS support in `org.springframework.remoting.jaxws`
  org.springframework.web.struts.LookupDispatchActionSupport as of Spring 3.0
  org.springframework.web.struts.MappingDispatchActionSupport as of Spring 3.0
  org.springframework.jms.listener.adapter.MessageListenerAdapter102 as of Spring 3.0, in favor of the JMS 1.1 based `MessageListenerAdapter`
  org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean as of Spring 3.0, in favor of the `scheduling.concurrent` package which is based on Java 5's `java.util.concurrent.ExecutorService`
  org.springframework.transaction.jta.OC4JJtaTransactionManager as of Spring 3.2, in favor of `WebLogicJtaTransactionManager` since Oracle end-of-lifed OC4J in favor of WebLogic
  org.springframework.instrument.classloading.oc4j.OC4JLoadTimeWeaver as of Spring 3.2, in favor of `WebLogicLoadTimeWeaver` since Oracle end-of-lifed OC4J in favor of WebLogic
  org.springframework.scheduling.timer.ScheduledTimerTask as of Spring 3.0, in favor of the `scheduling.concurrent` package which is based on Java 5's `java.util.concurrent.ExecutorService`
  org.springframework.web.context.support.ServletContextFactoryBean as of Spring 3.0, since "servletContext" is now available as a default bean in every WebApplicationContext
  org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer in Spring 3.1 in favor of `PropertySourcesPlaceholderConfigurer` in conjunction with `StandardServletEnvironment`.
  org.springframework.remoting.jaxrpc.ServletEndpointSupport in favor of JAX-WS support in `org.springframework.remoting.jaxws`
  org.springframework.core.enums.ShortCodedLabeledEnum as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.web.servlet.mvc.SimpleFormController as of Spring 3.0, in favor of annotated controllers
  org.springframework.web.portlet.mvc.SimpleFormController as of Spring 3.0, in favor of annotated controllers
  org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport since Spring 3.1 in favor of `JdbcDaoSupport` and `NamedParameterJdbcDaoSupport`. The JdbcTemplate and NamedParameterJdbcTemplate now provide all the functionality of the SimpleJdbcTemplate.
  org.springframework.jdbc.core.simple.SimpleJdbcTemplate since Spring 3.1 in favor of `JdbcTemplate` and `NamedParameterJdbcTemplate`. The JdbcTemplate and NamedParameterJdbcTemplate now provide all the functionality of the SimpleJdbcTemplate.
  org.springframework.test.jdbc.SimpleJdbcTestUtils as of Spring 3.1.3; use `JdbcTestUtils` instead.
  org.springframework.jms.support.converter.SimpleMessageConverter102 as of Spring 3.0, in favor of the JMS 1.1 based `SimpleMessageConverter`
  org.springframework.jms.listener.SimpleMessageListenerContainer102 as of Spring 3.0, in favor of the JMS 1.1 based `SimpleMessageListenerContainer`
  org.springframework.jms.connection.SingleConnectionFactory102 as of Spring 3.0, in favor of the JMS 1.1 based `SingleConnectionFactory`
  org.springframework.web.jsf.SpringBeanVariableResolver as of Spring 3.2, in favor of the JSF 1.2 based `SpringBeanFacesELResolver`
  org.springframework.web.struts.SpringBindingActionForm as of Spring 3.0
  org.springframework.orm.ibatis.support.SqlMapClientDaoSupport as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
  org.springframework.orm.ibatis.SqlMapClientFactoryBean as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
  org.springframework.orm.ibatis.SqlMapClientTemplate as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)
  org.springframework.core.enums.StaticLabeledEnum as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.core.enums.StaticLabeledEnumResolver as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.core.enums.StringCodedLabeledEnum as of Spring 3.0, in favor of Java 5 enums.
  org.springframework.scheduling.backportconcurrent.ThreadPoolTaskExecutor as of Spring 3.2, in favor of using the native JDK 6 concurrent support
  org.springframework.web.servlet.view.tiles.TilesConfigurer as of Spring 3.0
  org.springframework.web.servlet.view.tiles.TilesJstlView as of Spring 3.0
  org.springframework.web.servlet.view.tiles.TilesView as of Spring 3.0
  org.springframework.scheduling.timer.TimerFactoryBean as of Spring 3.0, in favor of the `scheduling.concurrent` package which is based on Java 5's `java.util.concurrent.ExecutorService`
  org.springframework.scheduling.timer.TimerTaskExecutor as of Spring 3.0, in favor of the `scheduling.concurrent` package which is based on Java 5's `java.util.concurrent.ExecutorService`
  org.springframework.orm.jpa.vendor.TopLinkJpaDialect as of Spring 3.1, in favor of the EclipseLink project and Spring's corresponding `EclipseLinkJpaDialect`
  org.springframework.orm.jpa.vendor.TopLinkJpaVendorAdapter as of Spring 3.1, in favor of the EclipseLink project and Spring's corresponding `EclipseLinkJpaVendorAdapter`
  org.springframework.transaction.interceptor.TransactionAspectUtils as of Spring 3.1.2 in favor of `BeanFactoryUtils`
  org.springframework.web.jsf.WebApplicationContextVariableResolver as of Spring 3.2, in favor of the JSF 1.2 based `WebApplicationContextFacesELResolver`
  org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter in favor of `AllEncompassingFormHttpMessageConverter`
  org.springframework.beans.factory.xml.XmlBeanFactory as of Spring 3.1 in favor of `DefaultListableBeanFactory` and `XmlBeanDefinitionReader`

- Deprecated Exceptions
  Exceptions and Description
  org.springframework.remoting.jaxrpc.JaxRpcSoapFaultException in favor of JAX-WS support in `org.springframework.remoting.jaxws`

- Deprecated Annotation Types
  Annotation Type and Description
  org.springframework.test.annotation.ExpectedException as of Spring 3.1 in favor of using built-in support for declaring expected exceptions in the underlying testing framework (e.g., JUnit, TestNG, etc.)
  org.springframework.test.annotation.NotTransactional as of Spring 3.0, in favor of moving the non-transactional test method to a separate (non-transactional) test class or to a `@BeforeTransaction` or `@AfterTransaction` method.

- Deprecated Fields
  Field and Description
  org.springframework.scheduling.config.AnnotationDrivenBeanDefinitionParser.ASYNC_ANNOTATION_PROCESSOR_BEAN_NAME as of Spring 3.1 in favor of `AnnotationConfigUtils.ASYNC_ANNOTATION_PROCESSOR_BEAN_NAME`
  org.springframework.scheduling.config.AnnotationDrivenBeanDefinitionParser.ASYNC_EXECUTION_ASPECT_BEAN_NAME as of Spring 3.1 in favor of `AnnotationConfigUtils.ASYNC_EXECUTION_ASPECT_BEAN_NAME`
  org.springframework.beans.factory.support.AbstractBeanDefinition.AUTOWIRE_AUTODETECT as of Spring 3.0: If you are using mixed autowiring strategies, use annotation-based autowiring for clearer demarcation of autowiring needs.
  org.springframework.beans.factory.config.AutowireCapableBeanFactory.AUTOWIRE_AUTODETECT as of Spring 3.0: If you are using mixed autowiring strategies, prefer annotation-based autowiring for clearer demarcation of autowiring needs.
  org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.BEAN_NAME_DELIMITERS as of Spring 3.1 in favor of `BeanDefinitionParserDelegate.MULTI_VALUE_ATTRIBUTE_DELIMITERS`
  org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.COMMAND_NAME_VARIABLE_NAME as of Spring 2.5, in favor of `FormTag.MODEL_ATTRIBUTE_VARIABLE_NAME`
  org.springframework.web.util.CookieGenerator.DEFAULT_COOKIE_MAX_AGE in favor of setting no max age value at all in such a case
  org.springframework.jmx.support.MBeanRegistrationSupport.REGISTRATION_FAIL_ON_EXISTING since Spring 3.2, in favor of `RegistrationPolicy.FAIL_ON_EXISTING`
  org.springframework.jmx.support.MBeanRegistrationSupport.REGISTRATION_IGNORE_EXISTING since Spring 3.2, in favor of `RegistrationPolicy.IGNORE_EXISTING`
  org.springframework.jmx.support.MBeanRegistrationSupport.REGISTRATION_REPLACE_EXISTING since Spring 3.2, in favor of `RegistrationPolicy.REPLACE_EXISTING`
  org.springframework.scheduling.config.AnnotationDrivenBeanDefinitionParser.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME as of Spring 3.1 in favor of `AnnotationConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME`
  org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests.simpleJdbcTemplate As of Spring 3.2, use `AbstractTransactionalTestNGSpringContextTests.jdbcTemplate` instead.
  org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests.simpleJdbcTemplate As of Spring 3.2, use `AbstractTransactionalJUnit4SpringContextTests.jdbcTemplate` instead.

- Deprecated Methods
  Method and Description
  org.springframework.aop.framework.AdvisedSupport.addAllAdvisors(Advisor[]) as of Spring 3.0, in favor of `AdvisedSupport.addAdvisors(org.springframework.aop.Advisor...)`
  org.springframework.ui.ModelMap.addAllObjects(Collection) as of Spring 2.5, in favor of `ModelMap.addAllAttributes(Collection)`
  org.springframework.ui.ModelMap.addAllObjects(Map) as of Spring 2.5, in favor of `ModelMap.addAllAttributes(Map)`
  org.springframework.beans.factory.support.BeanDefinitionBuilder.addConstructorArg(Object) since Spring 2.5, in favor of `BeanDefinitionBuilder.addConstructorArgValue(java.lang.Object)`
  org.springframework.jdbc.core.simple.AbstractJdbcCall.addDeclaredRowMapper(String, ParameterizedRowMapper) in favor of `AbstractJdbcCall.addDeclaredRowMapper(String, org.springframework.jdbc.core.RowMapper)`
  org.springframework.core.convert.support.ConversionServiceFactory.addDefaultConverters(GenericConversionService) in Spring 3.1 in favor of `DefaultConversionService.addDefaultConverters(ConverterRegistry)`
  org.springframework.context.support.AbstractApplicationContext.addListener(ApplicationListener) as of Spring 3.0, in favor of `AbstractApplicationContext.addApplicationListener(org.springframework.context.ApplicationListener<?>)`
  org.springframework.ui.ModelMap.addObject(Object) as of Spring 2.5, in favor of `ModelMap.addAttribute(Object)`
  org.springframework.ui.ModelMap.addObject(String, Object) as of Spring 2.5, in favor of `ModelMap.addAttribute(String, Object)`
  org.springframework.web.bind.WebDataBinder.bindMultipartFiles(Map, MutablePropertyValues) as of Spring 3.0, in favor of `WebDataBinder.bindMultipart(java.util.Map<java.lang.String, java.util.List<org.springframework.web.multipart.MultipartFile>>, org.springframework.beans.MutablePropertyValues)` which binds all multipart files, even if more than one sent for the same name
  org.springframework.core.CollectionFactory.createConcurrentMap(int) as of Spring 3.0, for usage on JDK 1.5 or higher
  org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(int) as of Spring 3.0, for usage on JDK 1.5 or higher
  org.springframework.web.context.ContextLoaderListener.createContextLoader() in favor of simply subclassing ContextLoaderListener itself (which extends ContextLoader, as of Spring 3.0)
  org.springframework.core.CollectionFactory.createCopyOnWriteSet() as of Spring 3.0, for usage on JDK 1.5 or higher
  org.springframework.core.convert.support.ConversionServiceFactory.createDefaultConversionService() in Spring 3.1 in favor of `DefaultConversionService.DefaultConversionService()`
  org.springframework.core.CollectionFactory.createIdentityMapIfPossible(int) as of Spring 2.5, for usage on JDK 1.4 or higher
  org.springframework.beans.factory.config.PropertiesFactoryBean.createInstance() as of Spring 3.0, in favor of `PropertiesFactoryBean.createProperties()`
  org.springframework.core.CollectionFactory.createLinkedCaseInsensitiveMapIfPossible(int) as of Spring 3.0, for usage on JDK 1.5 or higher
  org.springframework.core.CollectionFactory.createLinkedMapIfPossible(int) as of Spring 2.5, for usage on JDK 1.4 or higher
  org.springframework.core.CollectionFactory.createLinkedSetIfPossible(int) as of Spring 2.5, for usage on JDK 1.4 or higher
  org.springframework.web.context.ContextLoader.createWebApplicationContext(ServletContext, ApplicationContext) as of Spring 3.1 in favor of `ContextLoader.createWebApplicationContext(ServletContext)` and `ContextLoader.configureAndRefreshWebApplicationContext(ConfigurableWebApplicationContext, ServletContext)`
  org.springframework.remoting.rmi.RmiClientInterceptorUtils.doInvoke(MethodInvocation, Remote) as of Spring 2.5, in favor of `RmiClientInterceptorUtils.invokeRemoteMethod(org.aopalliance.intercept.MethodInvocation, java.lang.Object)`
  org.springframework.web.util.UriUtils.encodeHttpUrl(String, String) in favor of `UriComponentsBuilder`; see note about query param encoding
  org.springframework.web.util.UriTemplate.encodeUri(String) No longer in use, with no direct replacement
  org.springframework.web.util.UriUtils.encodeUri(String, String) in favor of `UriComponentsBuilder`; see note about query param encoding
  org.springframework.web.util.UriUtils.encodeUriComponents(String, String, String, String, String, String, String, String, String) in favor of `UriComponentsBuilder`
  org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientCallback) as of Spring 3.0 - not really needed anymore with generic `SqlMapClientTemplate.execute(org.springframework.orm.ibatis.SqlMapClientCallback<T>)` method
  org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithMapResult(SqlMapClientCallback) as of Spring 3.0 - not really needed anymore with generic `SqlMapClientTemplate.execute(org.springframework.orm.ibatis.SqlMapClientCallback<T>)` method
  org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests.findUniqueProfileValueSourceFromContext(ApplicationContext) Use `@ProfileValueSourceConfiguration` instead.
  org.springframework.aop.config.AopNamespaceUtils.forceAutoProxyCreatorToUseClassProxying(BeanDefinitionRegistry) since Spring 2.5, in favor of `AopConfigUtils.forceAutoProxyCreatorToUseClassProxying(BeanDefinitionRegistry)`
  org.springframework.util.ClassUtils.forName(String) as of Spring 3.0, in favor of specifying a ClassLoader explicitly: see `ClassUtils.forName(String, ClassLoader)`
  org.springframework.web.context.ContextLoaderListener.getContextLoader() in favor of simply subclassing ContextLoaderListener itself (which extends ContextLoader, as of Spring 3.0)
  org.springframework.core.convert.TypeDescriptor.getElementType() in Spring 3.1 in favor of `TypeDescriptor.getElementTypeDescriptor()`
  org.springframework.validation.DataBinder.getErrors() in favor of `DataBinder.getBindingResult()`. Use the `BindException.BindException(BindingResult)` constructor to create a BindException instance if still needed.
  org.springframework.web.servlet.DispatcherServlet.getHandler(HttpServletRequest, boolean) as of Spring 3.0.4, in favor of `DispatcherServlet.getHandler(javax.servlet.http.HttpServletRequest)`, with this method's cache attribute now effectively getting ignored
  org.springframework.core.convert.TypeDescriptor.getMapKeyType() in Spring 3.1 in favor of `TypeDescriptor.getMapKeyTypeDescriptor()`
  org.springframework.core.convert.TypeDescriptor.getMapValueType() in Spring 3.1 in favor of `TypeDescriptor.getMapValueTypeDescriptor()`
  org.springframework.web.servlet.view.json.MappingJackson2JsonView.getRenderedAttributes() use `MappingJackson2JsonView.getModelKeys()` instead
  org.springframework.web.servlet.view.json.MappingJacksonJsonView.getRenderedAttributes() use `MappingJacksonJsonView.getModelKeys()` instead
  org.springframework.transaction.interceptor.TransactionAspectUtils.getTransactionManager(BeanFactory, String) as of Spring 3.1.2 in favor of `BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactory, Class, String)`
  org.springframework.transaction.interceptor.TransactionAspectUtils.getTransactionManager(ConfigurableListableBeanFactory, String) as of Spring 3.1.2 in favor of `BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactory, Class, String)`
  org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.initDefaults(Element) in Spring 3.1 in favor of `BeanDefinitionParserDelegate.initDefaults(Element, BeanDefinitionParserDelegate)`
  org.springframework.format.support.FormattingConversionServiceFactoryBean.installFormatters(FormatterRegistry) since Spring 3.1 in favor of `FormattingConversionServiceFactoryBean.setFormatterRegistrars(Set)`
  org.springframework.remoting.rmi.RmiClientInterceptorUtils.invoke(MethodInvocation, Remote, String) as of Spring 2.5, in favor of `RmiClientInterceptorUtils.invokeRemoteMethod(org.aopalliance.intercept.MethodInvocation, java.lang.Object)`
  org.springframework.core.JdkVersion.isAtLeastJava14() as of Spring 3.0 which requires Java 1.5+
  org.springframework.core.JdkVersion.isAtLeastJava15() as of Spring 3.0 which requires Java 1.5+
  org.springframework.core.JdkVersion.isAtLeastJava16() as of Spring 3.0, in favor of reflective checks for the specific Java 1.6 classes of interest
  org.springframework.aop.support.AopUtils.isCglibProxyClass(Class) as of Spring 3.1 in favor of `ClassUtils.isCglibProxyClass(Class)`
  org.springframework.aop.support.AopUtils.isCglibProxyClassName(String) as of Spring 3.1 in favor of `ClassUtils.isCglibProxyClassName(String)`
  org.springframework.test.web.servlet.result.StatusResultMatchers.isDestinationLocked() matching the deprecation of HttpStatus.DESTINATION_LOCKED
  org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser.isEligibleAttribute(Attr) in favour of `AbstractSimpleBeanDefinitionParser.isEligibleAttribute(org.w3c.dom.Attr, ParserContext)`
  org.springframework.test.web.servlet.result.StatusResultMatchers.isInsufficientSpaceOnResource() matching the deprecation of HttpStatus.INSUFFICIENT_SPACE_ON_RESOURCE
  org.springframework.test.web.servlet.result.StatusResultMatchers.isMethodFailure() matching the deprecation of HttpStatus.METHOD_FAILURE
  org.springframework.util.ClassUtils.isPresent(String) as of Spring 2.5, in favor of `ClassUtils.isPresent(String, ClassLoader)`
  org.springframework.ui.velocity.VelocityEngineUtils.mergeTemplate(VelocityEngine, String, Map, Writer) Use `VelocityEngineUtils.mergeTemplate(VelocityEngine, String, String, Map, Writer)` instead, following Velocity 1.6's corresponding deprecation in its own API.
  org.springframework.ui.velocity.VelocityEngineUtils.mergeTemplateIntoString(VelocityEngine, String, Map) Use `VelocityEngineUtils.mergeTemplateIntoString(VelocityEngine, String, String, Map)` instead, following Velocity 1.6's corresponding deprecation in its own API.
  org.springframework.transaction.interceptor.TransactionAspectSupport.methodIdentification(Method) in favor of `TransactionAspectSupport.methodIdentification(Method, Class)`
  org.springframework.beans.factory.support.AbstractBeanDefinition.overrideFrom(AbstractBeanDefinition) since Spring 2.5, in favor of `AbstractBeanDefinition.overrideFrom(BeanDefinition)`
  org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.parseStringValue(String, Properties, Set) as of Spring 3.0, in favor of using `PropertyPlaceholderConfigurer.resolvePlaceholder(java.lang.String, java.util.Properties, int)` with `PropertyPlaceholderHelper`. Only retained for compatibility with Spring 2.5 extensions.
  org.springframework.context.support.PropertySourcesPlaceholderConfigurer.processProperties(ConfigurableListableBeanFactory, Properties) in favor of `PropertySourcesPlaceholderConfigurer.processProperties(ConfigurableListableBeanFactory, ConfigurablePropertyResolver)`
  org.springframework.jdbc.core.simple.SimpleJdbcOperations.query(String, ParameterizedRowMapper, Map) as of Spring 3.0: Use the method using the newly genericized RowMapper interface instead since the RowMapper and ParameterizedRowMapper interfaces are equivalent now.
  org.springframework.jdbc.core.simple.SimpleJdbcTemplate.query(String, ParameterizedRowMapper, Map)
  org.springframework.jdbc.core.simple.SimpleJdbcOperations.query(String, ParameterizedRowMapper, Object...) as of Spring 3.0: Use the method using the newly genericized RowMapper interface instead since the RowMapper and ParameterizedRowMapper interfaces are equivalent now.
  org.springframework.jdbc.core.simple.SimpleJdbcTemplate.query(String, ParameterizedRowMapper, Object...)
  org.springframework.jdbc.core.simple.SimpleJdbcOperations.query(String, ParameterizedRowMapper, SqlParameterSource) as of Spring 3.0: Use the method using the newly genericized RowMapper interface instead since the RowMapper and ParameterizedRowMapper interfaces are equivalent now.
  org.springframework.jdbc.core.simple.SimpleJdbcTemplate.query(String, ParameterizedRowMapper, SqlParameterSource)
  org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, ParameterizedRowMapper, Map) as of Spring 3.0: Use the method using the newly genericized RowMapper interface instead since the RowMapper and ParameterizedRowMapper interfaces are equivalent now.
  org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForObject(String, ParameterizedRowMapper, Map)
  org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, ParameterizedRowMapper, Object...) as of Spring 3.0: Use the method using the newly genericized RowMapper interface instead since the RowMapper and ParameterizedRowMapper interfaces are equivalent now.
  org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForObject(String, ParameterizedRowMapper, Object...)
  org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, ParameterizedRowMapper, SqlParameterSource) as of Spring 3.0: Use the method using the newly genericized RowMapper interface instead since the RowMapper and ParameterizedRowMapper interfaces are equivalent now.
  org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForObject(String, ParameterizedRowMapper, SqlParameterSource)
  org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(ParserContext, Object) since Spring 2.5, in favor of `AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(ParserContext, Element)` and `AopConfigUtils.registerAutoProxyCreatorIfNecessary(BeanDefinitionRegistry, Object)`
  org.springframework.beans.PropertyEditorRegistrySupport.registerSharedEditor(Class, PropertyEditor) as of Spring 3.0, in favor of PropertyEditorRegistrars or ConversionService usage
  org.springframework.jdbc.core.simple.SimpleJdbcCall.returningResultSet(String, ParameterizedRowMapper) in favor of `SimpleJdbcCall.returningResultSet(String, org.springframework.jdbc.core.RowMapper)`
  org.springframework.jdbc.core.simple.SimpleJdbcCallOperations.returningResultSet(String, ParameterizedRowMapper) in favor of `SimpleJdbcCallOperations.returningResultSet(String, org.springframework.jdbc.core.RowMapper)`
  org.springframework.orm.hibernate3.HibernateOperations.saveOrUpdateAll(Collection) as of Spring 2.5, in favor of individual `saveOrUpdate` or `merge` usage
  org.springframework.orm.hibernate3.LocalSessionFactoryBean.setCacheProvider(CacheProvider) as of Spring 3.0, following Hibernate 3.3's deprecation of the CacheProvider SPI
  org.springframework.web.servlet.view.ContentNegotiatingViewResolver.setDefaultContentType(MediaType) use `ContentNegotiatingViewResolver.setContentNegotiationManager(ContentNegotiationManager)`
  org.springframework.beans.factory.support.BeanDefinitionBuilder.setFactoryBean(String, String) since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`
  org.springframework.web.servlet.view.ContentNegotiatingViewResolver.setFavorParameter(boolean) use `ContentNegotiatingViewResolver.setContentNegotiationManager(ContentNegotiationManager)`
  org.springframework.web.servlet.view.ContentNegotiatingViewResolver.setFavorPathExtension(boolean) use `ContentNegotiatingViewResolver.setContentNegotiationManager(ContentNegotiationManager)`
  org.springframework.web.servlet.view.ContentNegotiatingViewResolver.setIgnoreAcceptHeader(boolean) use `ContentNegotiatingViewResolver.setContentNegotiationManager(ContentNegotiationManager)`
  org.springframework.web.servlet.view.ContentNegotiatingViewResolver.setMediaTypes(Map) use `ContentNegotiatingViewResolver.setContentNegotiationManager(ContentNegotiationManager)`
  org.springframework.web.servlet.view.ContentNegotiatingViewResolver.setParameterName(String) use `ContentNegotiatingViewResolver.setContentNegotiationManager(ContentNegotiationManager)`
  org.springframework.jmx.support.MBeanRegistrationSupport.setRegistrationBehavior(int) since Spring 3.2, in favor of `MBeanRegistrationSupport.setRegistrationPolicy(RegistrationPolicy)`
  org.springframework.jmx.support.MBeanRegistrationSupport.setRegistrationBehaviorName(String) since Spring 3.2, in favor of `MBeanRegistrationSupport.setRegistrationPolicy(RegistrationPolicy)`
  org.springframework.web.servlet.view.json.MappingJackson2JsonView.setRenderedAttributes(Set) use `MappingJackson2JsonView.setModelKeys(Set)` instead
  org.springframework.web.servlet.view.json.MappingJacksonJsonView.setRenderedAttributes(Set) use `MappingJacksonJsonView.setModelKeys(Set)` instead
  org.springframework.beans.factory.support.BeanDefinitionBuilder.setResourceDescription(String) since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`
  org.springframework.beans.factory.support.BeanDefinitionBuilder.setSingleton(boolean) since Spring 2.5, in favor of `BeanDefinitionBuilder.setScope(java.lang.String)`
  org.springframework.beans.factory.support.AbstractBeanDefinition.setSingleton(boolean) since Spring 2.5, in favor of `AbstractBeanDefinition.setScope(java.lang.String)`
  org.springframework.beans.factory.support.BeanDefinitionBuilder.setSource(Object) since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`
  org.springframework.ui.freemarker.FreeMarkerConfigurationFactory.setTemplateLoaders(TemplateLoader...) as of Spring 2.0.1, in favor of the "preTemplateLoaders" and "postTemplateLoaders" properties
  org.springframework.web.servlet.view.ContentNegotiatingViewResolver.setUseJaf(boolean) use `ContentNegotiatingViewResolver.setContentNegotiationManager(ContentNegotiationManager)`
  org.springframework.web.servlet.mvc.BaseCommandController.suppressValidation(HttpServletRequest) as of Spring 2.0.4, in favor of the `BaseCommandController.suppressValidation(HttpServletRequest, Object)` variant

- Deprecated Constructors
  Constructor and Description
  org.springframework.beans.factory.support.AbstractBeanDefinition(AbstractBeanDefinition) since Spring 2.5, in favor of `AbstractBeanDefinition.AbstractBeanDefinition(BeanDefinition)`
  org.springframework.beans.factory.xml.BeanDefinitionParserDelegate(XmlReaderContext) since Spring 3.1 in favor of `BeanDefinitionParserDelegate.BeanDefinitionParserDelegate(XmlReaderContext, Environment)`
  org.springframework.jdbc.CannotGetJdbcConnectionException(String, ClassNotFoundException) since Spring 2.5, in favor of throwing an IllegalStateException in case of the driver not being found
  org.springframework.test.context.ContextConfigurationAttributes(Class, String[], Class[], boolean, Class) as of Spring 3.2, use `ContextConfigurationAttributes.ContextConfigurationAttributes(Class, String[], Class[], boolean, Class[], boolean, Class)` instead
  org.springframework.jdbc.datasource.DriverManagerDataSource(String, String, String, String) since Spring 2.5. DriverManagerDataSource is primarily intended for accessing pre-registered JDBC drivers. If you need to register a new driver, consider using `SimpleDriverDataSource` instead.
  org.springframework.core.io.support.ResourceArrayPropertyEditor(ResourcePatternResolver) as of 3.1 in favor of `ResourceArrayPropertyEditor.ResourceArrayPropertyEditor(ResourcePatternResolver, PropertyResolver)`
  org.springframework.core.io.support.ResourceArrayPropertyEditor(ResourcePatternResolver, boolean) as of 3.1 in favor of `ResourceArrayPropertyEditor.ResourceArrayPropertyEditor(ResourcePatternResolver, PropertyResolver, boolean)`
  org.springframework.core.io.ResourceEditor(ResourceLoader) as of Spring 3.1 in favor of `ResourceEditor.ResourceEditor(ResourceLoader, PropertyResolver)`
  org.springframework.core.io.ResourceEditor(ResourceLoader, boolean) as of Spring 3.1 in favor of `ResourceEditor.ResourceEditor(ResourceLoader, PropertyResolver, boolean)`
  org.springframework.beans.support.ResourceEditorRegistrar(ResourceLoader) as of Spring 3.1 in favor of `ResourceEditorRegistrar.ResourceEditorRegistrar(ResourceLoader, PropertyResolver)`
  org.springframework.beans.factory.support.RootBeanDefinition(Class, boolean) since Spring 2.5, in favor of `AbstractBeanDefinition.setScope(java.lang.String)`
  org.springframework.beans.factory.support.RootBeanDefinition(Class, int) as of Spring 3.0, in favor of `AbstractBeanDefinition.setAutowireMode(int)` usage
  org.springframework.beans.factory.support.RootBeanDefinition(Class, MutablePropertyValues) as of Spring 3.0, in favor of `AbstractBeanDefinition.getPropertyValues()` usage
  org.springframework.beans.factory.support.RootBeanDefinition(Class, MutablePropertyValues, boolean) since Spring 2.5, in favor of `AbstractBeanDefinition.setScope(java.lang.String)`
  org.springframework.jdbc.datasource.SingleConnectionDataSource(String, String, String, String, boolean) since Spring 2.5. Driver parameter usage is generally not recommended for a SingleConnectionDataSource. If you insist on using driver parameters directly, set up the Driver class manually before invoking this DataSource.

- Deprecated Enum Constants
  Enum Constant and Description
  org.springframework.http.HttpStatus.DESTINATION_LOCKED See WebDAV Draft Changes
  org.springframework.http.HttpStatus.INSUFFICIENT_SPACE_ON_RESOURCE See WebDAV Draft Changes
  org.springframework.http.HttpStatus.METHOD_FAILURE See WebDAV Draft Changes