Package io.quarkus.arc
Annotation Interface DefaultBean
If a bean is annotated with this annotation, it means that the bean will only be used
as a default bean if no other bean of this type is configured. If another bean is configured
however, the default bean is not used.
Here is an example:
@Dependent public class SomeConfiguration { @Produces @DefaultBean public MyBean create() { // create bean } }If this code is used and MyBean is not defined anywhere else, then the result of
create()
is used in all injection
points.
However, if there is another piece of configuration code that looks like:
@Dependent public class SomeOtherConfiguration { @Produces public MyBean override() { // create bean } }Then the result of
override()
will be used as MyBean in all injection points.
Default beans can optionally declare Priority
.
In case there is no priority defined, @Priority(0)
is assumed.
Priority value is used for bean ordering and during typesafe resolution to disambiguate multiple matching default beans.