Resource Injection
This is a legacy Apache Ignite documentationThe new documentation is hosted here: https://ignite.apache.org/docs/latest/
Overview
Ignite allows dependency injection of pre-defined Ignite resources, and supports field-based as well as method-based injection. Resources with proper annotations will be injected into the corresponding task, job, closure, or SPI before it is initialized.
Field Based and Method Based
You can inject resources by annotating either a field or a method. When you annotate a field, Ignite simply sets the value of the field at injection time (disregarding an access modifier of the field). If you annotate a method with resource annotation, it should accept an input parameter of the type corresponding to an injected resource. If it does, then the method is invoked at injection time with the appropriate resource passed as an input argument.
Ignite ignite = Ignition.ignite();
Collection<String> res = ignite.compute().broadcast(new IgniteCallable<String>() {
// Inject Ignite instance.
@IgniteInstanceResource
private Ignite ignite;
@Override
public String call() throws Exception {
IgniteCache<Object, Object> cache = ignite.getOrCreateCache(CACHE_NAME);
// Do some stuff with cache.
...
}
});public class MyClusterJob implements ComputeJob {
...
private Ignite ignite;
...
// Inject Ignite instance.
@IgniteInstanceResource
public void setIgnite(Ignite ignite) {
this.ignite = ignite;
}
...
}Pre-defined Resources
There are a number of pre-defined Ignite resources that you can inject:
Resource | Description |
|---|---|
| Injects grid cache name provided via |
| Injects current |
| Injects current instance of Ignite API. |
| Injects instance of |
| Injects an instance of |
| Injects Ignite service by specified service name. |
| Injects Spring's |
| Injects resource from Spring's |
| Injects an instance of |
| Injects instance of |
Updated 11 months ago
