@Scope
@Retention(value=RUNTIME)
public @interface Provided
Provided scope is used to define a bean that should not be considered a candidate for dependency injection because it is provided by another bean. This scope is used when, for example, you have a factory bean that returns a bean that also requires dependency injection.