diff --git a/org.springframework.aop/src/main/java/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.java b/org.springframework.aop/src/main/java/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.java index cc0a9918897..18d8d25d153 100644 --- a/org.springframework.aop/src/main/java/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.java +++ b/org.springframework.aop/src/main/java/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.java @@ -27,23 +27,16 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.util.ClassUtils; /** - * Convenient superclass for proxy-creating - * {@link org.springframework.beans.factory.FactoryBean FactoryBean} types that produce - * only singleton-scoped objects. - * + * Convenient superclass for {@link FactoryBean} types that produce singleton-scoped + * proxy objects. + * *

Manages pre- and post-interceptors (references, rather than * interceptor names, as in {@link ProxyFactoryBean}) and provides * consistent interface management. * * @author Juergen Hoeller * @since 2.0 - * @deprecated as of Spring 3.1 following the deprecation of its only implementation - * ({@link org.springframework.transaction.interceptor.TransactionProxyFactoryBean - * TransactionProxyFactoryBean}) and generally in favor of providing such functionality - * via Spring XML namespaces, e.g. {@code tx:} or {@code @Enable}* annotations, e.g. - * {@code @EnableTransactionManagement}. */ -@Deprecated @SuppressWarnings("serial") public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig implements FactoryBean, BeanClassLoaderAware, InitializingBean { diff --git a/org.springframework.context/src/main/java/org/springframework/cache/interceptor/CacheProxyFactoryBean.java b/org.springframework.context/src/main/java/org/springframework/cache/interceptor/CacheProxyFactoryBean.java index 297f4db4df0..5504fe57566 100644 --- a/org.springframework.context/src/main/java/org/springframework/cache/interceptor/CacheProxyFactoryBean.java +++ b/org.springframework.context/src/main/java/org/springframework/cache/interceptor/CacheProxyFactoryBean.java @@ -26,14 +26,19 @@ import org.springframework.aop.support.DefaultPointcutAdvisor; * {@link org.springframework.aop.framework.ProxyFactoryBean} * with a separate {@link CachingInterceptor} definition. * - *

This class is intended to cover the typical case of declarative - * cache demarcation: namely, wrapping a singleton target object with a - * caching proxy, proxying all the interfaces that the target implements. - * + *

This class is designed to facilitate declarative cache demarcation: namely, wrapping + * a singleton target object with a caching proxy, proxying all the interfaces that the + * target implements. Exists primarily for third-party framework integration. + * Users should favor the {@code cache:} XML namespace + * {@link org.springframework.cache.annotation.Cacheable @Cacheable} annotation. + * See the declarative annotation-based caching section + * of the Spring reference documentation for more information. + * * @author Costin Leau * @see org.springframework.aop.framework.ProxyFactoryBean * @see CachingInterceptor */ +@SuppressWarnings("serial") public class CacheProxyFactoryBean extends AbstractSingletonProxyFactoryBean { private final CacheInterceptor cachingInterceptor = new CacheInterceptor(); diff --git a/org.springframework.transaction/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java b/org.springframework.transaction/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java index 20d5cdec886..fe7ab37bbea 100644 --- a/org.springframework.transaction/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java +++ b/org.springframework.transaction/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java @@ -33,18 +33,18 @@ import org.springframework.transaction.PlatformTransactionManager; * {@link org.springframework.aop.framework.ProxyFactoryBean} * with a separate {@link TransactionInterceptor} definition. * - *

HISTORICAL NOTE:This class was originally intended to cover the - * typical case of declarative - * transaction demarcation: namely, wrapping a singleton target object with a - * transactional proxy, proxying all the interfaces that the target implements. However, - * in Spring versions 2.0 and beyond, the functionality provided here is superseded - * by the more convenient {@code tx:} XML namespace. See the - * declarative transaction management section of the Spring reference documentation to - * understand the modern options for managing transactions in Spring applications. - * While this class has been deprecated starting with Spring 3.1, its use remains - * valid and supported. The deprecation serves as a strong reminder to users that - * simpler and superior approaches are available. What follows is the original - * (pre-deprecation) documentation. + *

HISTORICAL NOTE: This class was originally designed to cover the + * typical case of declarative transaction demarcation: namely, wrapping a singleton + * target object with a transactional proxy, proxying all the interfaces that the target + * implements. However, in Spring versions 2.0 and beyond, the functionality provided here + * is superseded by the more convenient {@code tx:} XML namespace. See the declarative transaction management section of the + * Spring reference documentation to understand the modern options for managing + * transactions in Spring applications. For these reasons, users should favor of + * the {@code tx:} XML namespace as well as + * the @{@link org.springframework.transaction.annotation.Transactional Transactional} + * and @{@link org.springframework.transaction.annotation.EnableTransactionManagement + * EnableTransactionManagement} annotations. * *

There are three main properties that need to be specified: *