Я расширяю полный продукт под названием Hippo CMS с помощью моего собственного интерфейса REST. Hippo CMS использует Apache CXF для отдыха и получает определения ресурсов из весеннего компонента, определенного где-то в источниках CMS Hippo. Это определение выглядит следующим образом:Переопределить весовой компонент, определенный xml, в конфигурации на основе Java
<bean id="jaxrsRestPlainResourceProviders" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="org.apache.commons.collections.ListUtils" />
<property name="targetMethod" value="union" />
<property name="arguments">
<list>
<ref bean="customRestPlainResourceProviders" />
<ref bean="defaultRestPlainResourceProviders" />
</list>
</property>
</bean>
<bean id="defaultRestPlainResourceProviders" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="sourceList">
<list>
</list>
</property>
</bean>
<!-- Default empty list of custom plain resource providers to be overriden. -->
<bean id="customRestPlainResourceProviders" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="sourceList">
<list>
</list>
</property>
</bean>
мне нужно переопределить customRestPlainResourceProviders
боб с моим собственным боба. Он отлично работает на основе конфигурации XML вида:
<bean id="customRestPlainResourceProviders" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="sourceList">
<list>
<bean class="org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider">
<constructor-arg>
<bean class="com.xxx.rest.FolderStructureResource"/>
</constructor-arg>
</bean>
</list>
</property>
</bean>
Но это не работает, если я определить компонент в классе конфигурации Java (который в случае других бобов работает полностью штраф):
@Bean(name = "customRestPlainResourceProviders")
public ListFactoryBean customRestPlainResourceProviders() {
ListFactoryBean listFactoryBean = new ListFactoryBean();
listFactoryBean.setSourceList(
Lists.newArrayList(
new SingletonResourceProvider(
new FolderStructureResource(repository())
)
)
);
return listFactoryBean;
}
Есть ли способ переопределить компонент, определенный в конфигурации XML, с компонентом, созданным в классе конфигурации Java?
Проверьте, настроена ли пружина для сканирования указанного класса или пакета. –
Это потому, что конфигурация работает отлично сама по себе. Я могу определить bean-компонент в этой конфигурации на основе java и автоподвести его, например. FolderStructureResource определяется в xml. –
xml не нужно сканировать классы java. Подлинность на основе аннотаций должна быть проверена весной. Проверьте тег –