2012-04-03 17 views
1

ヘイゼルキャストでマップエントリを保持するBeanを挿入したいと考えています。ヘイゼルキャストのマップストアクラスでBean-Injectionが失敗しました

<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が正しいサービス・ビーンに適切なデータソースを注入するようにしました。

私はこれを試しましたが、サービスを注入するNullPointerを取得しました。 SpringはMapPersistenceObjectをサービスに接続したり、autowireすることはできません。それは次のようになります:

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

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

よろしく& & TIAあなたはSpring構成ではなく、Hazelcast xml設定を使用する必要があります

答えて

10

noircc。

<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を参照してください。

+0

ハゼルキャストスプリングの統合を使用しており、起動時にnullpointer例外が発生していない場合、これは私の設定です。どうすれば助けてくれますか? "0" eviction-percentage = "30" read-backup-data = "true" eviction-policy = "NONE" マージ-policy = "com.hazelcast.map.merge.PassThroughMergePolicy" /> ' –

関連する問題