Package org.springframework.aop.framework.autoproxy

# Class AutoProxyUtils

java.lang.Object
org.springframework.aop.framework.autoproxy.AutoProxyUtils

public abstract class AutoProxyUtils extends Object
Utilities for auto-proxy aware components. Mainly for internal use within the framework.

Since:
  2.0.3
Author:
  Juergen Hoeller
See Also:
  - `AbstractAutoProxyCreator`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ORIGINAL_TARGET_CLASS_ATTRIBUTE`
Bean definition attribute that indicates the original target class of an auto-proxied bean, for example, to be used for the introspection of annotations on the target class behind an interface-based proxy.
`static final String`
`PRESERVE_TARGET_CLASS_ATTRIBUTE`
Bean definition attribute that may indicate whether a given bean is supposed to be proxied with its target class (in case of it getting proxied in the first place).

## Constructor Summary

Constructors
Constructor
Description
`AutoProxyUtils()`

## Method Summary

Modifier and Type
Method
Description
`static Class<?>`
`determineTargetClass(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory, String beanName)`
Determine the original target class for the specified bean, if possible, otherwise falling back to a regular `getType` lookup.
`static boolean`
`shouldProxyTargetClass(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory, String beanName)`
Determine whether the given bean should be proxied with its target class rather than its interfaces.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### PRESERVE_TARGET_CLASS_ATTRIBUTE

public static final String PRESERVE_TARGET_CLASS_ATTRIBUTE
Bean definition attribute that may indicate whether a given bean is supposed to be proxied with its target class (in case of it getting proxied in the first place). The value is `Boolean.TRUE` or `Boolean.FALSE`.

Proxy factories can set this attribute if they built a target class proxy for a specific bean, and want to enforce that bean can always be cast to its target class (even if AOP advices get applied through auto-proxying).

See Also:
  - `shouldProxyTargetClass(org.springframework.beans.factory.config.ConfigurableListableBeanFactory, java.lang.String)`

### ORIGINAL_TARGET_CLASS_ATTRIBUTE

public static final String ORIGINAL_TARGET_CLASS_ATTRIBUTE
Bean definition attribute that indicates the original target class of an auto-proxied bean, for example, to be used for the introspection of annotations on the target class behind an interface-based proxy.

Since:
  4.2.3
See Also:
  - `determineTargetClass(org.springframework.beans.factory.config.ConfigurableListableBeanFactory, java.lang.String)`

## Constructor Details

### AutoProxyUtils

public AutoProxyUtils()

## Method Details

### shouldProxyTargetClass

public static boolean shouldProxyTargetClass(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory, @Nullable String beanName)
Determine whether the given bean should be proxied with its target class rather than its interfaces. Checks the `"preserveTargetClass" attribute` of the corresponding bean definition.

Parameters:
  `beanFactory` - the containing ConfigurableListableBeanFactory
  `beanName` - the name of the bean
Returns:
  whether the given bean should be proxied with its target class

### determineTargetClass

@Nullable public static Class<?> determineTargetClass(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory, @Nullable String beanName)
Determine the original target class for the specified bean, if possible, otherwise falling back to a regular `getType` lookup.

Parameters:
  `beanFactory` - the containing ConfigurableListableBeanFactory
  `beanName` - the name of the bean
Returns:
  the original target class as stored in the bean definition, if any
Since:
  4.2.3
See Also:
  - `BeanFactory.getType(String)`