春季测试加载bean配置,来自XML和注释两者



这是我的春天

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration({"classpath*:/META-INF/spring/*.xml" ,
             "classpath*:META-INF/spring/datasource-testcontext.xml"})
    @TestExecutionListeners({ DependencyInjectionTestExecutionListener.class,
            DbUnitTestExecutionListener.class })
    public class GenericDaoTest {
        @Test
        public void testFind() throws Exception {
        }
          @Configuration
          @ComponentScan("com.myComp.user")
          public static class SpringConfig {
          }

但仍然无法找到用@Component注释的com.myComp.user.UserDAO。不知道我在这里缺少什么?

以下是我得到的例外

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.myComp.user.UserDAO] 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)}

您不能同时声明@Configuration XML配置文件。

您必须选择其中一种格式,然后导入

一个选项是摆脱您的静态嵌套@Configuration类,只是在声明的XML配置文件中配置组件扫描。

另一个选项是通过@Configuration类导入XML配置。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@TestExecutionListeners({
    DependencyInjectionTestExecutionListener.class,
    DbUnitTestExecutionListener.class
})
public class GenericDaoTest {
    @Test
    public void testFind() {
    }
    @Configuration
    @ComponentScan("com.myComp.user")
    @ImportResource({
        "classpath*:/META-INF/spring/*.xml",
        "classpath*:META-INF/spring/datasource-testcontext.xml"
    })
    public static class SpringConfig {
    }
}

最新更新