带有Spring Boot CrudRepo的Apache Ignite无法初始化

时间:2018-09-25 15:48:15

标签: java spring spring-boot ignite

我正在尝试使用IgniteCrudRepository建立一个小的Ignite应用程序。

由于当前的稳定版本2.6.0的spring数据集成(https://issues.apache.org/jira/browse/IGNITE-6879)存在问题,因此我使用的是最新的每夜版本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

但是在我的spring boot应用程序中,我确实创建了一个Ignite bean,并且在调试日志中,我看到spring知道该bean。

Eagerly caching bean 'ignite' to allow for resolving potential circular reference

我的spring boot应用程序类如下:

@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 bean注入我的控制器中,也可以通过调试来确认。实现类型为IgniteKernal。

所以我不明白为什么无法创建存储库,因为所需的bean似乎是应用程序上下文的一部分。没有其他xml或java配置。

我知道2.7.0尚未发布,这可能是夜间构建中的错误。但是也许有人以前有此问题,或者有解决此问题的想法。

1 个答案:

答案 0 :(得分:2)

我相信您必须将bean命名为igniteInstance。请参阅最后一个段落here。它说您可以拥有igniteInstanceigniteCfgigniteSpringCfgPath