Spring - создайте экземпляр одного класса, используя метод фабрики другого класса

spring

100 просмотра

2 ответа

694 Репутация автора

Я использую Apache Ignite в своем проекте Spring. Я хочу создать экземпляр org.apache.ignite.Ignite в контексте моего приложения, используя конфигурацию xml. Одним из способов создания объекта Ignite является использование метода org.apache.ignite.Ignition # start. Мой вопрос, как я могу использовать конфигурацию bean xml для создания экземпляра Ignite из Ignition # start.

<!-- Implements Ignite interface -->
<bean class="org.apache.ignite.internal.IgniteKernal">

</bean>

<!-- Returns instance of Ignite as org.apache.ignite.internal.IgniteKernal -->
<bean id="ignitionIgniteKernal" class="org.apache.ignite.Ignition" factory-method="start">
    <constructor-arg ref="refToConfig" />
</bean>
Автор: Ali Источник Размещён: 18.07.2016 06:21

Ответы (2)


1 плюс

467 Репутация автора

Попробуйте использовать Spring cache Manager.

http://apacheignite.gridgain.org/docs/spring-caching

Согласно документации

Встроенный узел может быть запущен самим SpringCacheManager. В этом случае вам потребуется указать путь к XML-файлу конфигурации Ignite или компоненту IgniteConfiguration через configurationPath или свойства конфигурации соответственно (см. Примеры ниже). Обратите внимание, что установка обоих недопустима и приводит к IllegalArgumentException.

Таким образом, контекст приложения вызывает кеш, а затем Spring Cache Manager управляет кешем с помощью аннотации или явного добавления.

Надеюсь это поможет.

Автор: Aravind R Размещён: 18.07.2016 06:25

0 плюса

694 Репутация автора

Решение

Согласно весенней документации, определение bean-компонента ignitionIgniteKernal, приведенное выше, в точности соответствует тому, как вы будете создавать экземпляр org.apache.ignite.internal.IgniteKernal. Ref:

Если присутствует атрибут «класс», фабричный метод будет статическим методом в классе, указанном атрибутом «класс» в этом определении компонента. Часто это будет тот же класс, что и у построенного объекта - например, когда фабричный метод используется в качестве альтернативы конструктору. Тем не менее, это может быть в другом классе. В этом случае созданный объект не будет относиться к классу, указанному в атрибуте «класс». Это аналогично поведению FactoryBean.

Автор: Ali Размещён: 14.10.2016 12:15
Вопросы из категории :
32x32