2

hazelcastでマップエントリを永続化するBeanを注入したいと思います。

<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のコンストラクター引数です。MapPersistenceObjectには、エントリの永続化を担当するサービスがあります。MapPersistenceObjectをコンポーネントとしてマークし、Service-ObjectをAutowiredにして、Springが適切なService-Beanに適切なデータソースを注入するようにしました。

これを試しましたが、サービスを挿入する必要があるNullPointerを取得します。SpringはMapPersistenceObjectをサービスに接続または自動配線できないようです。次のようになります。

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

多分誰かが問題の解決策を知っていますか?

&&tianoirccに関して

4

1 に答える 1

10

Hazelcast xml構成ではなく、Spring構成を使用する必要があります。

<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"/>

HazelcastSpring統合を参照してください。

于 2012-04-04T05:27:20.553 に答える