Я пытаюсь настроить небольшое приложение Ignite с помощью IgniteCrudRepository.
Поскольку в текущей стабильной версии 2.6.0 есть проблемы с интеграцией данных Spring (https://issues.apache.org/jira/browse/IGNITE-6879) Я использую последнюю ночную версиюbuild 2.7.0.
Когда я пытаюсь запустить приложение, происходит сбой со следующим исключением:
org.apache.ignite.IgniteException: Failed to initialize Ignite repository factory. Ignite instance or IgniteConfiguration or a path to Ignite's spring XML configuration must be defined in the application configuration
Но в моем приложении для весенней загрузки я создаю компонент Ignite и вЖурналы отладки Я вижу, что Spring знает об этом bean-компоненте.
Eagerly caching bean 'ignite' to allow for resolving potential circular reference
Мой класс загрузочного приложения выглядит следующим образом:
@SpringBootApplication
@EnableIgniteRepositories
@Configuration
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Bean
Ignite ignite(){
IgniteConfiguration configuration = new IgniteConfiguration();
configuration.setIgniteInstanceName("myApp");
configuration.setPeerClassLoadingEnabled(true);
CacheConfiguration<Integer, Page> cache = new CacheConfiguration<>("pageCache");
cache.setIndexedTypes(Integer.class, Page.class);
configuration.setCacheConfiguration(cache);
return Ignition.start(configuration);
}
}
Репозиторий определен так:
import org.apache.ignite.springdata20.repository.IgniteRepository;
public interface PageRepository extends IgniteRepository<Page, Integer> {
}
И внедрение компонента Ignite в мой контроллер также работает, подтвердив, что путем отладки в нем. Реализация имеет тип IgniteKernal.
Поэтому я не понимаю, почему хранилище не может быть создано, поскольку кажется, что требуемый компонентчасть контекста приложения. Дополнительной конфигурации xml или java нет.
Я знаю, что 2.7.0 еще не выпущен, и это может быть ошибкой в ночнойстроить.Но, возможно, у кого-то была эта проблема раньше или есть идея, как это исправить.