【问题标题】:CDI Bean-Injection failed at Hazelcast map-store classHazelcast 地图商店类的 CDI Bean 注入失败
【发布时间】:2012-09-19 04:23:22
【问题描述】:

我正在使用 JBoss AS 7.1 并利用上下文和依赖注入。这里没有弹簧。

我的问题是如何将依赖项注入到 hazelcast MapStore 实现中?可能有一种程序化的方式吗?任何帮助表示赞赏。

例如

public class ClientRepositoryCache implements MapStore<Integer, ClientItem> {

    @Inject
    ClientRepository repository;

    @Override
    public ClientItem load(Integer clientNumber) {
        return repository.getClientById(clientNumber);
    }
}

【问题讨论】:

    标签: java-ee-6 cdi hazelcast


    【解决方案1】:

    目前 Hazelcast 仅使用 Spring 支持依赖注入。相反,您可以使用MapStoreFactory,它可以创建您自己的 MapStore 实例。

    查看相关的 Hazelcast 小组帖子;

    MapStore/MapLoader configuration

    ... 例如,要与 Guice 集成,您可以提供单例 MapStoreFactory 实现的名称,该实现静态注入了足够的信息来实现具有注入器感知逻辑的 newMapStore(String name, Properties properties)。

    如果您像我一样使用编程配置,则可以通过将已注入的工厂传递给 MapStoreConfig.setFactoryImplementation 来避免静态注入。

    -蒂姆·佩尔斯-

    另请参阅 MapStoreFactoryMapStoreConfig javadocs。

    【讨论】:

    • 有什么好的代码示例吗?尤其是使用 CDI/WELD 会很有帮助。谢谢
    【解决方案2】:

    https://github.com/hazelcast/hazelcast/issues/440

    这很好用!通过 CDI 扩展完成与 CDI 的集成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 2015-04-15
      • 2015-02-12
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多