Hazelcast地图商店类的CDI Bean-Injection失败了

时间:2012-09-19 04:23:22

标签: java-ee-6 cdi hazelcast

我正在使用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);
    }
}

2 个答案:

答案 0 :(得分:1)

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

查看相关的Hazelcast小组帖子;

  

<强> MapStore/MapLoader configuration

     

...   例如,要与Guice集成,您可以提供单个MapStoreFactory实现的名称,该实现静态注入了足够的信息,以使用Injector-aware逻辑实现newMapStore(String name,Properties属性)。

     

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

     

-Tim Peierls -

另请参阅MapStoreFactoryMapStoreConfig javadocs。

答案 1 :(得分:0)

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

这非常有效!使用CDI扩展与CDI集成。