Я пытаюсь преобразовать компонент, настроенный на xml, в JavaConfig. версия XML работает, но при использовании версии JavaConfig я получаю сообщение об ошибке:Spring Framework: больше нет BeanFactory (возможно, из-за сериализации)
Caused by: java.lang.IllegalStateException: No BeanFactory available anymore (probably due to serialization) - cannot resolve interceptor names [cacheAdvisor]
at org.springframework.aop.framework.ProxyFactoryBean.initializeAdvisorChain(ProxyFactoryBean.java:423)
Работа конфигурации XML:
<bean id="contentLogic" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="interceptorNames">
<list>
<value>cacheAdvisor</value>
</list>
</property>
<property name="proxyInterfaces" value="com.company.logic.ContentLogic"/>
<property name="target">
<bean class="com.company.logic.ContentLogicImpl"/>
</property>
</bean>
Не работает JavaConfig:
@Configuration
public class SpringConfiguration {
@Bean
public ContentLogic getRealContentLogic() throws ClassNotFoundException {
ProxyFactoryBean factory = new ProxyFactoryBean();
factory.setInterceptorNames(new String[]{"cacheAdvisor"});
factory.setTargetClass(ContentLogicImpl.class);
factory.setProxyInterfaces(new Class[]{ContentLogic.class});
return (ContentLogic) factory.getObject();
}
}
Все остальные компоненты, кроме этого, были удалены из XML, так как теперь мы используем @Component. Так что было бы неплохо избавиться от финального :-) Я попробую ваше предложение и отчитаю! –
Работал отлично, спасибо! Вот еще один код: factory.setBeanFactory (beanFactory); –