Deprecated | ||||
---|---|---|---|---|
| ||||
Div | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
See IoC Cookbook - Overriding IoC Services
Introduction
Tapestry goes to great lengths so that you can use the Inject annotation on a field and provide no additional data, yet end up with the correct object or service.
...
You can then contribute into the Infrastructure service's configuration:
Code Block | ||||
---|---|---|---|---|
| ||||
public static void contributeAlias(@InjectService("MyService") MyService myService, Configuration<AliasContribution> configuration) { configuration.add(AliasContribution.create(MyService.class, myService)); } } |
The above example follows a typical pattern; the service to be vended is injected into the contributor method, using the explicit InjectService annotation. A contribution is made providing the service type.
Notice that the contribution doesn't have to be a service; you can just instantiate an object inside the contribution method and contribute that. That's what we're doing in the example, though we're using a create() static method rather than *new* (just to smooth out some Java Generics ugliness).
...