Apache Ignite with Spring Boot CrudRepo 无法初始化
Apache Ignite with Spring Boot CrudRepo cannot be initialized
我正在尝试使用 IgniteCrudRepository 设置一个小型 Ignite 应用程序。
由于当前的稳定版本 2.6.0 在 spring 数据集成方面存在问题 (https://issues.apache.org/jira/browse/IGNITE-6879) 我正在使用最新的 nighty 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
但是在我的 spring 引导应用程序中我确实创建了一个 Ignite bean 并且在调试日志中我看到 spring 知道那个 bean。
Eagerly caching bean 'ignite' to allow for resolving potential circular reference
我的 spring 引导应用程序 class 如下所示:
@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 尚未发布,这可能是夜间构建中的错误。但也许有人以前遇到过这个问题或者知道如何解决这个问题。
我相信你必须给这个 bean 命名 igniteInstance
。请参阅最后一段 here。它说你可以有 igniteInstance
、igniteCfg
或 igniteSpringCfgPath
.
我正在尝试使用 IgniteCrudRepository 设置一个小型 Ignite 应用程序。
由于当前的稳定版本 2.6.0 在 spring 数据集成方面存在问题 (https://issues.apache.org/jira/browse/IGNITE-6879) 我正在使用最新的 nighty 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
但是在我的 spring 引导应用程序中我确实创建了一个 Ignite bean 并且在调试日志中我看到 spring 知道那个 bean。
Eagerly caching bean 'ignite' to allow for resolving potential circular reference
我的 spring 引导应用程序 class 如下所示:
@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 尚未发布,这可能是夜间构建中的错误。但也许有人以前遇到过这个问题或者知道如何解决这个问题。
我相信你必须给这个 bean 命名 igniteInstance
。请参阅最后一段 here。它说你可以有 igniteInstance
、igniteCfg
或 igniteSpringCfgPath
.