gpt4 book ai didi

Spring Boot + Hazelcast MapStore 无法 Autowiring 存储库

转载 作者:行者123 更新时间:2023-12-01 01:44:37 26 4
gpt4 key购买 nike

我开始探索 Hazelcast 的功能,并且一直在尝试通过 HazelcastRepository 使用 MapStore 作为我的数据库的 Write-Behind 缓冲区。我的目标是在我的 MapStore 中使用 JpaRepository 来加载和存储到缓存中/从缓存中存储。

我正在使用 Spring Boot,在做了一些研究之后,我发现我可以使用 @SpringAware 在 MapStore 中 Autowiring 我的存储库,但每次它到达那里时,我的 Bean 都是 null我得到一个 NullPointerException .
即使经过许多不同的测试我也无法让它工作我无法在 MapStore 中 Autowiring 我的 bean

此配置是否有问题以启用 SpringAware 或者我看错了地方?

找到 This stackoverflow post它给了我线索,但我仍然无法弄清楚这个问题,因为大多数配置都是 xml 而不是 java。

找到这个 Github Issue关于如何通过 Java 配置在 Hazelcast 中配置 SpringAware

我在 Git Repo Here 中提交了我的示例代码.

Debugger Screenshot null Bean

最佳答案

在调查了提供的代码后,我注意到 @SpringAware 在默认情况下从未启用,因为我在 Hazelcast 上发现了一个 GitHub 问题。该问题描述了 SpringAware 已被禁用,因为它影响了性能,这将我转发到另一个已关闭的票证,解决了使用 通过代码启用注释的问题。 SpringManagedContext (避免使用 XML),但它仍然不能解决问题。

找到了真正的解决方案here , 添加 MapLoaderLifecycleSupport 您的 MapStore 实现的接口(interface)并实现 init 方法,如票证所示:

@Override
public void init(HazelcastInstance hazelcastInstance, Properties properties, String mapName) {
hazelcastInstance.getConfig().getManagedContext().initialize(this);
}

这将强制 @SpringAware 在 MapStore 类中启用,因此,能够将任何 Spring 组件 Autowiring 到类中,如下图所示。

working-jpa-repository-map-store-screenshot

关于Spring Boot + Hazelcast MapStore 无法 Autowiring 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51958023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com