将XML和Java配置与Spring混合

我正在构建一个新的应用程序,该应用程序通过java配置而不是xml配置spring。此应用程序依赖于使用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>

但是我仍然遇到同样的错误。正确的方法是什么?

回答:

在配置类中,你可以通过@ImportResource注释导入xml配置。

像这样:

@Configuration

@ImportResource({"classpath:appbase-context.xml"})

public class AppConfig {

// @Bean definitions here...

}

请记住,当你使用Spring的Java配置时,需要指定一个额外的名称context-param,该名称表示要用于你的应用程序上下文的类:

<context-param>

<param-name>contextClass</param-name>

<param-value>

org.springframework.web.context.support.AnnotationConfigWebApplicationContext

</param-value>

</context-param>

以上是 将XML和Java配置与Spring混合 的全部内容, 来源链接: utcz.com/qa/399990.html

回到顶部