gpt4 book ai didi

java - 在 Spring 中,ContextConfiguration(...) 是否继承自其父级 @ContextConfiguration?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:24:40 24 4
gpt4 key购买 nike

假设我有一个这样的父测试类:

@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = { MyCustomTestConfig.class })
public class MyParentTestclass {

然后我有一个子类,我想在其中添加 Spring 3.2.3 name annotation attribute .

@ContextConfiguration(name=MyName)
public class MyChildTestClass extends MyParentTestClass {

我仍然想从父级获取所有上下文配置 - 但不确定它是否会通过。

我的问题是:在 Spring 中,ContextConfiguration(...) 是否继承自其父 @ContextConfiguration?

最佳答案

@ContextConfiguration确实支持开箱即用的继承。

@ContextConfiguration 有一个名为 inheritLocations 的属性,默认为 true 并指示来自测试父类(super class)的资源位置或带注释的类是否应该被继承。

inheritLocations = true: This means that an annotated class will inherit the resource locations or annotated classes defined by test superclasses. Specifically, the resource locations or annotated classes for a given test class will be appended to the list of resource locations or annotated classes defined by test superclasses. Thus, subclasses have the option of extending the list of resource locations or annotated classes.

If inheritLocations is set to false, the resource locations or annotated classes for the annotated class will shadow and effectively replace any resource locations or annotated classes defined by superclasses.

在以下使用注释类的示例中,ExtendedTest 的 ApplicationContext 将从 BaseConfig 和 ExtendedConfig 配置类按顺序加载。因此,在 ExtendedConfig 中定义的 Bean 可能会覆盖在 BaseConfig 中定义的那些。

 @ContextConfiguration(classes=BaseConfig.class)
public class BaseTest {
// ...
}

@ContextConfiguration(classes=ExtendedConfig.class)
public class ExtendedTest extends BaseTest {
// ...
}

关于java - 在 Spring 中,ContextConfiguration(...) 是否继承自其父级 @ContextConfiguration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36191329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com