我的应用程序中有很多基于Unitils的集成测试类,它使用@SpringApplicationContext
(来自不同模块的不同spring xmls)。为了减少正在创建的spring上下文的数量,我们计划创建一个基本测试类,并仅从该基类初始化spring上下文,并使所有其他测试扩展此基类。
基类:
com.org.module1.mypack;
@SpringApplicationContext({“spring-module1.xml”,“spring-module2.xml”,“spring- module3.xml”}) 公共抽象类BaseTest { ... }
更改前的子课程:
更改后的com.org.module1.mypack.performance;
@SpringApplicationContext({“spring-module4.xml”}) 公共类ChildTest扩展BaseTest { .. }
基类:
com.org.module1.mypack;
@SpringApplicationContext({“spring-module1.xml”,“spring-module2.xml”,“spring-module3.xml”,“spring-module4.xml”}) 公共抽象类BaseTest { ... }
更改后的子课程:
com.org.module1.mypack.performance;
// @ SpringApplicationContext({“spring-module4.xml”}) 公共类ChildTest扩展BaseTest { .. }
现在我收到以下错误消息并且未创建我的上下文:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.org.module5.prepare.MyBean] 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), @org.springframework.beans.factory.annotation.Qualifier(value=myBean)}
当spring-module4.xml在子类中时,正常创建上下文并像往常一样执行所有测试。
注意:所有spring xml文件都在src / main / resources中,但spring-module4.xml在src / test / resources中除外
答案 0 :(得分:0)
默认情况下,类的注释不会被继承,除非它们的定义中包含@Inherited。