## Deprecated API

Contents

- Deprecated Interfaces
- Deprecated Classes
- Deprecated Exceptions
- Deprecated Annotation Types
- Deprecated Fields
- Deprecated Methods
- Deprecated Constructors

Deprecated Interfaces
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.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.

Deprecated Classes
org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
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.portlet.mvc.AbstractCommandController as of Spring 3.0, in favor of annotated controllers
org.springframework.web.servlet.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 (`AbstractJUnit38SpringContextTests`)
org.springframework.web.portlet.mvc.AbstractFormController as of Spring 3.0, in favor of annotated controllers
org.springframework.web.servlet.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.test.jpa.AbstractJpaTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
org.springframework.core.enums.AbstractLabeledEnum as of Spring 3.0, in favor of Java 5 enums.
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.test.AbstractSingleSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
org.springframework.test.AbstractSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
org.springframework.test.AbstractTransactionalDataSourceSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
org.springframework.test.AbstractTransactionalSpringContextTests as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
org.springframework.web.portlet.mvc.AbstractWizardFormController as of Spring 3.0, in favor of annotated controllers
org.springframework.web.servlet.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.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.portlet.mvc.BaseCommandController as of Spring 3.0, in favor of annotated controllers
org.springframework.web.servlet.mvc.BaseCommandController as of Spring 3.0, in favor of annotated controllers
org.springframework.web.servlet.mvc.CancellableFormController as of Spring 3.0, in favor of annotated controllers
org.springframework.web.servlet.view.tiles.ComponentControllerSupport as of Spring 3.0
org.springframework.test.ConditionalTestCase as of Spring 3.0, in favor of using the listener-based test context framework (`AbstractJUnit38SpringContextTests`)
org.springframework.web.struts.ContextLoaderPlugIn as of Spring 3.0
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.struts.DispatchActionSupport as of Spring 3.0
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.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.core.enums.LetterCodedLabeledEnum as of Spring 3.0, in favor of Java 5 enums.
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.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.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.portlet.mvc.SimpleFormController as of Spring 3.0, in favor of annotated controllers
org.springframework.web.servlet.mvc.SimpleFormController as of Spring 3.0, in favor of annotated controllers
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.struts.SpringBindingActionForm as of Spring 3.0
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.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`

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

Deprecated Annotation Types
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
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.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.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

Deprecated Methods
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.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<String, MultipartFile>, 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.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.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.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientCallback<List>) 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.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.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.beans.factory.xml.AbstractSimpleBeanDefinitionParser.isEligibleAttribute(Attr) in favour of `AbstractSimpleBeanDefinitionParser.isEligibleAttribute(org.w3c.dom.Attr, ParserContext)`
org.springframework.util.ClassUtils.isPresent(String) as of Spring 2.5, in favor of `ClassUtils.isPresent(String, ClassLoader)`
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.jdbc.core.simple.SimpleJdbcTemplate.query(String, ParameterizedRowMapper<T>, Map<String, ?>)
org.springframework.jdbc.core.simple.SimpleJdbcOperations.query(String, ParameterizedRowMapper<T>, Map<String, ?>) 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<T>, Object...)
org.springframework.jdbc.core.simple.SimpleJdbcOperations.query(String, ParameterizedRowMapper<T>, 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<T>, SqlParameterSource)
org.springframework.jdbc.core.simple.SimpleJdbcOperations.query(String, ParameterizedRowMapper<T>, 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<T>, Map<String, ?>)
org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, ParameterizedRowMapper<T>, Map<String, ?>) 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<T>, Object...)
org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, ParameterizedRowMapper<T>, 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<T>, SqlParameterSource)
org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, ParameterizedRowMapper<T>, 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.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.SimpleJdbcCallOperations.returningResultSet(String, ParameterizedRowMapper) in favor of `SimpleJdbcCallOperations.returningResultSet(String, org.springframework.jdbc.core.RowMapper)`
org.springframework.jdbc.core.simple.SimpleJdbcCall.returningResultSet(String, ParameterizedRowMapper) in favor of `SimpleJdbcCall.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.beans.factory.support.BeanDefinitionBuilder.setFactoryBean(String, String) since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`
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.AbstractBeanDefinition.setSingleton(boolean) since Spring 2.5, in favor of `AbstractBeanDefinition.setScope(java.lang.String)`
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.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.mvc.BaseCommandController.suppressValidation(HttpServletRequest) as of Spring 2.0.4, in favor of the `BaseCommandController.suppressValidation(HttpServletRequest, Object)` variant

Deprecated Constructors
org.springframework.beans.factory.support.AbstractBeanDefinition(AbstractBeanDefinition) since Spring 2.5, in favor of `AbstractBeanDefinition.AbstractBeanDefinition(BeanDefinition)`
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.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.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.