Package io.quarkus.arc.lookup
Annotation Type LookupUnlessProperty
-
@Repeatable(List.class) @Retention(RUNTIME) @Target({METHOD,TYPE,FIELD}) public @interface LookupUnlessProperty
Indicates that a bean should only be obtained by programmatic lookup if the property does not match the provided value.This annotation is repeatable. A bean will be included if all of the conditions defined by the
LookupUnlessProperty
andLookupIfProperty
annotations are satisifed.interface Service { String name(); } @LookupUnlessProperty(name = "service.foo.disabled", 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.disabled" is set to true // 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 String
name
Name of the runtime time property to checkString
stringValue
ExpectedString
value of the runtime time property (specified byname
) if the bean should be skipped at runtime.
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description boolean
lookupIfMissing
Determines if the bean should be suppressed when the property name specified byname
has not been specified at all
-