Подтвердить что ты не робот

Смешивание xml и java config с помощью spring

Я создаю новое приложение, которое настраивает spring через java-конфигурацию, а не на xml. Это приложение зависит от модуля, который использует конфигурацию стиля xml. Когда я пытаюсь запустить приложение, я получаю следующую ошибку:

No qualifying bean of type [com.myModule.myServiceImp] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Этот bean должен быть объявлен в модуле applicationContext.xml. Каков правильный способ справиться с этим? Я попробовал просто добавить его так, как если бы я накладывал контексты приложений вместе в приложении web.xml:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:com/myModule/appbase-context.xml
            com.myApp.AppConfig
        </param-value>
    </context-param>

Но у меня все еще такая же ошибка. Каков правильный способ сделать это?

4b9b3361

Ответ 1

В вашем классе конфигурации вы можете импортировать конфигурацию xml с помощью аннотации @ImportResource.

Что-то вроде этого:

@Configuration
@ImportResource({"classpath:appbase-context.xml"})
public class AppConfig {
    // @Bean definitions here...
}

Помните, что когда вы используете Spring Java Configuration, вам нужно указать дополнительный context-param, который говорит, что класс будет использоваться для вашего контекста приложения:

<context-param>
    <param-name>contextClass</param-name>
    <param-value>
        org.springframework.web.context.support.AnnotationConfigWebApplicationContext
    </param-value>
</context-param>