Annotation Type DependsOn
@Target({TYPE,METHOD}) @Retention(RUNTIME) @Documented public @interface DependsOn
Beans on which the current bean depends. Any beans specified are guaranteed to be created by the container before this bean. Used infrequently in cases where a bean does not explicitly depend on another through properties or constructor arguments, but rather depends on the side effects of another bean's initialization.A depends-on declaration can specify both an initialization-time dependency and, in the case of singleton beans only, a corresponding destruction-time dependency. Dependent beans that define a depends-on relationship with a given bean are destroyed first, prior to the given bean itself being destroyed. Thus, a depends-on declaration can also control shutdown order.
May be used on any class directly or indirectly annotated with
Componentor on methods annotated withBean.Using
DependsOnat the class level has no effect unless component-scanning is being used. If aDependsOn-annotated class is declared via XML,DependsOnannotation metadata is ignored, and<bean depends-on="..."/>is respected instead.- Since:
- 3.0
- Author:
- Juergen Hoeller