Can*_*ack 2 java spring spring-boot ignite
我正在尝试使用 IgniteCrudRepository 设置一个小型 Ignite 应用程序。
由于当前的稳定版本 2.6.0 存在 Spring 数据集成问题 ( https://issues.apache.org/jira/browse/IGNITE-6879 ),我使用的是最新的 nighty 版本 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
Run Code Online (Sandbox Code Playgroud)
但是在我的 spring 启动应用程序中,我确实创建了一个 Ignite bean,并且在调试日志中我看到 spring 知道该 bean。
Eagerly caching bean 'ignite' to allow for resolving potential circular reference
Run Code Online (Sandbox Code Playgroud)
我的 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);
}
}
Run Code Online (Sandbox Code Playgroud)
回购定义如下:
import org.apache.ignite.springdata20.repository.IgniteRepository;
public interface PageRepository extends IgniteRepository<Page, Integer> {
}
Run Code Online (Sandbox Code Playgroud)
将 Ignite bean 注入我的控制器也有效,通过调试确认了这一点。实现属于 IgniteKernal 类型。
所以我不明白为什么不能创建存储库,因为所需的 bean 似乎是应用程序上下文的一部分。没有额外的 xml 或 java 配置。
我知道 2.7.0 还没有发布,这可能是夜间构建中的一个错误。但也许有人以前遇到过这个问题,或者知道如何解决这个问题。
| 归档时间: |
|
| 查看次数: |
1841 次 |
| 最近记录: |