Итак, если я правильно следовать за вами (трудно знать наверняка без фрагмента кода), я предполагаю, что у вас есть что-то вроде этого ...
class MyRegion<K, V> extends Region<K, V> {
...
}
Тогда ...
@Component
class MyApplicationComponent {
@Autowired
private MyRegion<?, PdxInstance> region;
}
Да?
Таким образом, проблема заключается в том, что вы не можете использовать @Autowired для ввода или автоматической привязки ссылки Region к вашим компонентам приложения. Вы должны использовать @Resource, как так ...
@Component
class MyApplicationComponent {
@Resource(name = "myRegion")
private MyRegion<?, PdxInstance> region;
}
Причина заключается в том, Spring (независимо от версии), по умолчанию, когда он autowires «карту» в попытках компонентов приложения, чтобы создать отображение всех Весенние бобы, определенные в Spring ApplicationContext. То есть bean ID/Name -> bean reference.
Таким образом, учитывая ...
<bean id="beanOne" class="example.BeanTypeOne"/>
<bean id="beanTwo" class="example.BeanTypeTwo"/>
...
<bean id="beanN" class="example.BeanTypeN"/>
Вы в конечном итоге с автоматической проводкой карты в компоненте приложения из ...
@Autowired
Map<String, Object> beans;
beans.get("beanOne"); // is object instance of BeanTypeOne
beans.get("beanTwo"); // is object instance of BeanTypeTwo
...
beans.get("beanN"); // is object instance of BeanTypeN
Итак, что происходит в вашем случае , в контексте Spring, определенном в терминах типа (GemFire's) PdxInstance, нет компонентов. Это данные в ваших (пользовательских) регионах (регионах). Поэтому, когда он пытается назначить все компоненты в контексте Spring или ваш авторизованный (настраиваемый) регион, который Sprig идентифицирует как «карту», он не может назначать beans других типов PdxInstance, принимая во внимание «общий» тип.
Итак, используйте @Resource для автопостановки любого региона GemFire, обычаем или иным образом.
Кроме того, я задаю вопрос о необходимости «расширить» регион GemFire. Возможно, лучше использовать обертку («состав»).
Надеюсь, это поможет.
Cheers!
Просьба предоставить соответствующий код для повторения проблемы. –
@Autowired на самом деле работает .... но ваш PdxInstance не является управляемым bean bean-компонентом ... вы должны опубликовать свой конфигурационный файл Spring, класс java и т. Д., Чтобы получить помощь. – Pras