Внедрение ресурсов#
DataGrid позволяет внедрять внутренние ресурсы на основе полей и методов в задачу (task), задание (job), функцию (closure) или SPI, в том числе пользовательские. Ресурсы нужно внедрять до инициализации соответствующего класса.
Внедрение на основе полей и методов#
Чтобы внедрить ресурс DataGrid, в требуемом классе укажите соответствующую аннотацию в поле или методе. Тип поля или параметра метода должен соответствовать используемой аннотации — примеры указаны в разделе ниже.
Внедрение экземпляра узла DataGrid (класс Ignite) в пользовательский класс IgniteCallable c помощью указания аннотации для поля:
Ignite ignite = Ignition.ignite();
Collection<String> res = ignite.compute().broadcast(new IgniteCallable<String>() {
// Введите экземпляр Ignite.
@IgniteInstanceResource
private Ignite ignite;
@Override
public String call() throws Exception {
IgniteCache<Object, Object> cache = ignite.getOrCreateCache(CACHE_NAME);
// Выполните действия с кешем.
...
}
});
Внедрение экземпляра узла DataGrid (класс Ignite) в пользовательский класс ComputeJob с помощью указания аннотации для метода:
public class MyClusterJob implements ComputeJob {
...
private Ignite ignite;
...
// Введите экземпляр Ignite.
@IgniteInstanceResource
public void setIgnite(Ignite ignite) {
this.ignite = ignite;
}
...
}
Внедряемые ресурсы DataGrid#
Существует ряд ресурсов, которые соответствуют аннотациям и которые можно внедрять:
Ресурс |
Тип |
Описание |
|---|---|---|
|
|
Внедряет имя кеша кластера через |
|
|
Внедряет экземпляр текущей |
|
|
Внедряет экземпляр узла DataGrid |
|
|
Внедряет экземпляр |
|
|
Внедряет экземпляр |
|
Пользовательская реализация интерфейса |
Внедряет сервис |
|
|
Внедряет контекст |
|
Пользовательский класс |
Внедряет ресурс из контекста |
|
|
Внедряет ресурc от |
|
|
Внедряет экземпляр ресурса |