我一直在让 Spring @Autowired
在 maven 测试中工作。当我在IntellJ中运行JUnit测试(没有尝试Eclipse(时,它可以工作。但是当我运行 mvn 全新安装时,JUnit 测试失败并显示以下错误
testApp(com.sample.spring.AppTest(:创建名为"com.sample.spring.AppTest"的 bean 时出错:自动连线依赖项注入失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动连线字段:com.sample.spring.AppB com.sample.spring.AppTest.appB; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到 [com.sample.spring.AppB] 类型的匹配 bean,用于依赖项:预期至少 1 个 bean有资格作为此依赖项的自动连线候选项。Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true(}
我创建了一个自包含的示例项目,该项目始终如一地表现出这种行为。我正在使用 Spring 3.1.1。我相信有人面临同样的问题并破解了它。寻找有关此问题的一些指示。
这是一个构建路径问题:
在日食中工作,我将上下文配置更改为:
@ContextConfiguration(locations = "classpath:applicationContext.xml")
它与标准 Eclipse Runner 和 Maven(Maven Test 或 Maven install(一起运行。
确保您有:
src/main/java
src/test/java 和
src/test/resources
在构建路径中声明为源文件夹