Package io.quarkus.arc.lookup
Annotation Type LookupIfProperty
-
@Repeatable(List.class) @Retention(RUNTIME) @Target({METHOD,TYPE,FIELD}) public @interface LookupIfProperty
Indicates that a bean should only be obtained by programmatic lookup if the property matches the provided value.This annotation is repeatable. A bean will be included if all of the conditions defined by the
LookupIfPropertyandLookupUnlessPropertyannotations are satisifed.interface Service { String name(); } @LookupIfProperty(name = "service.foo.enabled", stringValue = "true") @ApplicationScoped class ServiceFoo implements Service { public String name() { return "foo"; } } @ApplicationScoped class ServiceBar { public String name() { return "bar"; } } @ApplicationScoped class Client { @Inject Instance<Service> service; void printServiceName() { // This would print "bar" if the property of name "service.foo.enabled" was set to false // Note that service.get() would normally result in AmbiguousResolutionException System.out.println(service.get().name()); } }- See Also:
Instance
-
-
Required Element Summary
Required Elements Modifier and Type Required Element Description StringnameName of the runtime property to checkStringstringValueExpectedStringvalue of the runtime property (specified byname) if the bean should be looked up at runtime.
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description booleanlookupIfMissingDetermines if the bean is to be looked up when the property name specified bynamehas not been specified at all
-