Mobilefirst 8.0.0 Spring bean-конфигурация завершается неудачно - PullRequest
0 голосов
/ 29 августа 2018

Это может быть немного далеко ...

Я пытаюсь зарегистрировать бины и ресурсы jax-rs, но безуспешно.

java.lang.RuntimeException: User code thrown exception: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.github.mfpdev.adapters.spring.integration.JAXRSResourcesRegistryImpl#0' defined in class path resource [applicationContext.xml]: Cannot create inner bean 'com.example.FeatureToggleAdapterResource#311640f7' of type [com.example.FeatureToggleAdapterResource] while setting bean property 'resources' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.example.FeatureToggleAdapterResource#311640f7' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'featureToggleService' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'featureToggleService' available

У меня есть класс конфигурации, который должен подключать компоненты.

@Configuration
@ComponentScan
public class BeanConfig {

    @Bean(name = "configurationService")
    public ConfigurationService configurationService() {
        return new ConfigurationServiceImpl();
    }

    @Bean(name = "featureToggleService")
    public FeatureToggleService featureToggleService() {
        return new FeatureToggleServiceImpl(jdbcTemplate());
    }
}

Мой applicationContext.xml довольно пуст

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- Define the list of JAX-RS resources to use: -->
    <bean class="com.github.mfpdev.adapters.spring.integration.JAXRSResourcesRegistryImpl">
        <property name="resources">
            <list>
                <bean class="com.example.FeatureToggleAdapterResource">
                    <constructor-arg ref="featureToggleService"/>
                </bean>
            </list>
        </property>
    </bean>

</beans>

И я использую https://github.com/mfpdev/mfp-advanced-adapters-samples

Является ли мой единственный выбор подключать бины через XML?

1 Ответ

0 голосов
/ 29 августа 2018

Хорошо, я дошел до конца ... Нужно специально отсканировать мой пакет конфигурации в службе, которая выполняет вызовы для bean-компонента (из того, что я могу сказать).

@ComponentScan(basePackages = {"com.example.adapter.configuration"})
public class FeatureToggleServiceImpl implements FeatureToggleService {}

Если кто-нибудь знает, куда лучше поставить @ComponentScan, я бы хотел знать.

...