...
In most cases, services are injected by matching just the type; there is no @InjectService annotation, just a method or constructor parameter whose type matches the service's interface.
In this case, it is very easy to supply your own alternate implementation of a service, by contributing a Service Override in your module class (usually AppModule.java), like this:
Code Block | ||||
---|---|---|---|---|
| ||||
@Contribute(ServiceOverride.class) public static void setupApplicationServiceOverrides(MappedConfiguration<Class,Object> configuration) { configuration.addInstance(SomeServiceType.class, SomeServiceTypeOverrideImpl.class); } |
...
Sometimes you'll want to define the override as a service of its own: this . This is useful if you want to inject a Logger specific to the service, or if the overriding implementation needs a service configuration:
...