Bean-Injection не удалось в классе карт-магазина Hazelcast - PullRequest
2 голосов
/ 03 апреля 2012

Я хочу добавить боб, который сохранит записи на карте в 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. В MapPersistenceObject существует служба, которая отвечает за сохранение записей. Я пометил MapPersistenceObject как компонент и произвел автоматическую разводку объекта-службы, чтобы Spring мог внедрить нужный компонент-компонент с нужным источником данных.

Я пробовал это, но я получаю NullPointer, где служба должна быть введена. Мне кажется, что Spring не может подключить или автоматически связать MapPersistenceObject с Сервисом. Это выглядит так:

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

Может, кто-нибудь знает решение проблемы?

С уважением && Tia noircc

1 Ответ

10 голосов
/ 04 апреля 2012

Вы должны использовать конфигурацию 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 .

...