public class ControllerAdviceBean extends Object implements Ordered
@ControllerAdvice
Spring-managed bean without necessarily requiring it to be instantiated.
The findAnnotatedBeans(ApplicationContext) method can be used to
discover such beans. However, a ControllerAdviceBean may be created
from any object, including ones without an @ControllerAdvice annotation.
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| Constructor and Description |
|---|
ControllerAdviceBean(Object bean)
Create a
ControllerAdviceBean using the given bean instance. |
ControllerAdviceBean(String beanName,
BeanFactory beanFactory)
Create a
ControllerAdviceBean using the given bean name and
BeanFactory. |
ControllerAdviceBean(String beanName,
BeanFactory beanFactory,
ControllerAdvice controllerAdvice)
Create a
ControllerAdviceBean using the given bean name,
BeanFactory, and @ControllerAdvice
annotation. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object other) |
static List<ControllerAdviceBean> |
findAnnotatedBeans(ApplicationContext context)
Find beans annotated with
@ControllerAdvice in the
given ApplicationContext and wrap them as ControllerAdviceBean
instances. |
Class<?> |
getBeanType()
Return the type of the contained bean.
|
int |
getOrder()
Get the order value for the contained bean.
|
int |
hashCode() |
boolean |
isApplicableToBeanType(Class<?> beanType)
Check whether the given bean type should be advised by this
ControllerAdviceBean. |
Object |
resolveBean()
Get the bean instance for this
ControllerAdviceBean, if necessary
resolving the bean name through the BeanFactory. |
String |
toString() |
public ControllerAdviceBean(Object bean)
ControllerAdviceBean using the given bean instance.bean - the bean instancepublic ControllerAdviceBean(String beanName, BeanFactory beanFactory)
ControllerAdviceBean using the given bean name and
BeanFactory.beanName - the name of the beanbeanFactory - a BeanFactory to retrieve the bean type initially
and later to resolve the actual beanpublic ControllerAdviceBean(String beanName, BeanFactory beanFactory, @Nullable ControllerAdvice controllerAdvice)
ControllerAdviceBean using the given bean name,
BeanFactory, and @ControllerAdvice
annotation.beanName - the name of the beanbeanFactory - a BeanFactory to retrieve the bean type initially
and later to resolve the actual beancontrollerAdvice - the @ControllerAdvice annotation for the
bean, or null if not yet retrievedpublic int getOrder()
As of Spring Framework 5.3, the order value is lazily retrieved using
the following algorithm and cached. Note, however, that a
@ControllerAdvice bean that is configured as a
scoped bean — for example, as a request-scoped or session-scoped
bean — will not be eagerly resolved. Consequently, Ordered is
not honored for scoped @ControllerAdvice beans.
Ordered,
use the value returned by Ordered.getOrder().OrderUtils.getOrder(AnnotatedElement).
OrderUtils.getOrder(Class, int) with Ordered.LOWEST_PRECEDENCE
used as the default order value.Ordered.LOWEST_PRECEDENCE as the default, fallback
order value.getOrder in interface OrderedresolveBean()@Nullable public Class<?> getBeanType()
If the bean type is a CGLIB-generated class, the original user-defined class is returned.
public Object resolveBean()
ControllerAdviceBean, if necessary
resolving the bean name through the BeanFactory.
As of Spring Framework 5.2, once the bean instance has been resolved it
will be cached if it is a singleton, thereby avoiding repeated lookups in
the BeanFactory.
public boolean isApplicableToBeanType(@Nullable Class<?> beanType)
ControllerAdviceBean.beanType - the type of the bean to checkControllerAdvicepublic static List<ControllerAdviceBean> findAnnotatedBeans(ApplicationContext context)
@ControllerAdvice in the
given ApplicationContext and wrap them as ControllerAdviceBean
instances.
As of Spring Framework 5.2, the ControllerAdviceBean instances
in the returned list are sorted using OrderComparator.sort(List).
getOrder(),
OrderComparator,
Ordered