在Hazelcast地图商店类中,Bean-Injection失败了

时间:2012-04-03 14:23:45

标签: spring map persistence hazelcast

我想要注入一个bean,它会将地图条目保留在hazelcast中。

<map name="storethiselements-map">
<backup-count>1</backup-count>
<map-store enabled="true">
<class-name>name.of.MapPersistenceObject</class-name>
<write-delay-seconds>0</write-delay-seconds>
</map-store>
</map>

这些是hazelcast-instance的构造函数args。 在MapPersistenceObject中,存在一个负责持久化条目的服务。我已将MapPersistenceObject标记为组件并使Service-Object自动连接,以便Spring将使用正确的数据源注入正确的Service-Bean。

我试过这个但是我得到了一个N​​ullPointer,应该注入服务。在我看来,Spring无法将MapPersistenceObject与服务连接或自动装配。它看起来像这样:

@Component
public class MapPersistenceObject implements
    MapLoader<Long, DeviceWakeupAction>, MapStore<Long, DeviceWakeupAction> {
@Autowired
StoreMapEntries storeMapEntriesService;
    [...]

也许有人知道这个问题的解决方案?

问候&amp;&amp; TIA   noircc

1 个答案:

答案 0 :(得分:10)

您应该使用Spring配置,而不是Hazelcast xml配置。

<hz:hazelcast id="hazelcast">
    <hz:config>
        ...
        <hz:map name="storethiselements-map" backup-count="1">
            <hz:map-store enabled="true" implementation="mapPersistenceObject" write-delay-seconds="0"/>
        </hz:map>
        ...
    </hz:config>
</hz:hazelcast>

<bean id="mapPersistenceObject" class="name.of.MapPersistenceObject"/>

请参阅Hazelcast Spring integration