Class ControllerAdviceBean
- All Implemented Interfaces:
Ordered
@ControllerAdvice
Spring-managed bean without necessarily requiring it to be instantiated.
The findAnnotatedBeans(ApplicationContext) method can be used to
discover such beans.
This class is internal to Spring Framework and is not meant to be used
by applications to manually create @ControllerAdvice beans.
- Since:
- 3.2
- Author:
- Rossen Stoyanchev, Brian Clozel, Juergen Hoeller, Sam Brannen
-
Field Summary
Fields inherited from interface Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionControllerAdviceBean(String beanName, BeanFactory beanFactory, ControllerAdvice controllerAdvice) Create aControllerAdviceBeanusing the given bean name,BeanFactory, and@ControllerAdviceannotation. -
Method Summary
Modifier and TypeMethodDescriptionbooleanstatic List<ControllerAdviceBean> findAnnotatedBeans(ListableBeanFactory beanFactory) Find beans annotated with@ControllerAdvicein the givenListableBeanFactoryand wrap them asControllerAdviceBeaninstances.static List<ControllerAdviceBean> findAnnotatedBeans(ApplicationContext context) Find beans annotated with@ControllerAdvicein the givenApplicationContextand wrap them asControllerAdviceBeaninstances.Return the type of the contained bean.intgetOrder()Get the order value for the contained bean.inthashCode()booleanisApplicableToBeanType(@Nullable Class<?> beanType) Check whether the given bean type should be advised by thisControllerAdviceBean.Get the bean instance for thisControllerAdviceBean, if necessary resolving the bean name through theBeanFactory.toString()
-
Constructor Details
-
ControllerAdviceBean
public ControllerAdviceBean(String beanName, BeanFactory beanFactory, ControllerAdvice controllerAdvice) Create aControllerAdviceBeanusing the given bean name,BeanFactory, and@ControllerAdviceannotation.- Parameters:
beanName- the name of the beanbeanFactory- aBeanFactoryto retrieve the bean type initially and later to resolve the actual beancontrollerAdvice- the@ControllerAdviceannotation for the bean- Since:
- 5.2
-
-
Method Details
-
getOrder
public int getOrder()Get the order value for the contained bean.The order value is lazily retrieved using the following algorithm and cached. Note, however, that a
@ControllerAdvicebean that is configured as a scoped bean — for example, as a request-scoped or session-scoped bean — will not be eagerly resolved. Consequently,Orderedis not honored for scoped@ControllerAdvicebeans.- If the resolved bean implements
Ordered, use the value returned byOrdered.getOrder(). - If the factory method
is known, use the value returned by
OrderUtils.getOrder(AnnotatedElement). - If the bean type is known, use the value returned
by
OrderUtils.getOrder(Class, int)withOrdered.LOWEST_PRECEDENCEused as the default order value. - Otherwise use
Ordered.LOWEST_PRECEDENCEas the default, fallback order value.
- If the resolved bean implements
-
getBeanType
-
resolveBean
Get the bean instance for thisControllerAdviceBean, if necessary resolving the bean name through theBeanFactory.Once the bean instance has been resolved it will be cached if it is a singleton, thereby avoiding repeated lookups in the
BeanFactory. -
isApplicableToBeanType
-
equals
-
hashCode
-
toString
-
findAnnotatedBeans
Find beans annotated with@ControllerAdvicein the givenApplicationContextand wrap them asControllerAdviceBeaninstances.Note that the
ControllerAdviceBeaninstances in the returned list are sorted usingOrderComparator.sort(List).- See Also:
-
findAnnotatedBeans
Find beans annotated with@ControllerAdvicein the givenListableBeanFactoryand wrap them asControllerAdviceBeaninstances.Note that the
ControllerAdviceBeaninstances in the returned list are sorted usingOrderComparator.sort(List).- Since:
- 7.0
- See Also:
-