Учитывая этот XML-код Spring ниже:Весна - класс Child свойство не установлено при введении через родителя
<bean id="baseCarFacade" class="com.foo.BaseCarFacade">
<property name="engineFacade" ref="engineFacade" />
</bean>
<bean id="engineFacade" class="com.foo.EngineFacade" />
<bean id="childCarFacade" class="com.foo.ChildCarFacade" parent="baseCarFacade" />
и это Java код:
public class BaseCarFacade implements IBaseMemberFacade {
public void setEngineFacade(EngineFacade engineFacade) {
this.engineFacade = engineFacade;
}
...
}
public class EngineFacade {
...
}
public class ChildCarFacade extends BaseCarFacade {
public void doSomethingSpecial() {
someObject = engineFacade.doSomethingReallySpecial();
}
...
}
У меня есть свойство, что я хотел бы inject (engineFacade) в дочернем классе (childCarFacade), который потенциально может быть введен для других детей родительского класса (BaseCarFacade). Вместо избыточности этого свойства во всех дочерних классах я надеялся иметь его на родительском уровне, а затем просто использовал его в любом из дочерних элементов, как показано выше, где я вызываю «doSomethingReallySpecial()».
Однако всякий раз, когда я выполняю этот код я получаю во время выполнения исключения нулевого указателя, который выглядит следующим образом:
причиненное: java.lang.NullPointerException на com.foo.EngineFacade.doSomethingReallySpecial (EngineFacade .java: 48)
Вот строка из конкретизации моих бобов:
Pre-инстанцирует одиночек в org.springframework.beans.[email protected]: определяющие бобы [winkInternalLifecycleManager, winkInternalLifecycleManagersRegistry, winkInternalRegistryPostProcessor, winkInternalLifecycleManagerPostProcessor, winkInternalDependenciesInjectionPostProcessor, winkInternalDeploymentConfiguration, winkInternalRequestProcessorBuilder, winkInternalDefaultPropertiesFactory, winkInternalPropertiesFactory, winkInternalPropertyPlaceholderConfigurer, winkInternalNullContant, org.springframework.context.annotation. internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalRequiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.apache.wink.spring.Registrar # 0, jaxbProvider, jacksonObjectMapper, jacksonAnnotationIntrospector, primaryAnnotation Introspector, secondaryAnnotationIntrospector, org.springframework.beans.factory.config.PropertyPlaceholderConfigurer # 0, propertyPlaceholderConfigurer, allProperties, DataSource, Dynacache, commonCache, TransactionManager, org.springframework.aop.config.internalAutoProxyCreator, org.springframework.transaction.annotation.AnnotationTransactionAttributeSource # 0, org.springframework.transaction.interceptor.TransactionInterceptor # 0, org.springframework.transaction.config.internalTransactionAdvisor, JdbcTemplate, baseCarFacade, engineFacade, childCarFacade ...
Вы можете увидеть последние, кажется, правильно созданный.
Может ли кто-нибудь указать на ошибку моих путей? Я чувствую, что это должно быть просто ...
Можете ли вы разместить любой из журналов Spring? На первый взгляд, ваш XML-код выглядит корректно. –
Спасибо за ваш ответ. Я не уверен, что добавить ... нет других ошибок. Однако я добавил строку запуска экземпляров компонента (см. Выше). Они выглядят правильно. – risingTide
У мальчика есть яйцо на моем лице ... см. Ниже. – risingTide