gpt4 book ai didi

java - Spring 配置的正确继承

转载 作者:行者123 更新时间:2023-11-30 11:44:33 25 4
gpt4 key购买 nike

我正在使用新的 Spring 配置创建一个项目。我有一个包含一些属性的基类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {Basic.class, Protected.class})
public class BaseTest {
@Autowired(required = false) protected String userName;
@Autowired(required = false) protected String password;
@Autowired protected String baseURL;

@Test
public void outputData() {
System.out.println("UserName: " + userName + " Password: "
+ password + "Base URL: " + baseURL);
}
}

@ActiveProfiles("default,protected")
public abstract class ProtectedTest extends BaseTest
{
@Autowired protected String userName;
@Autowired protected String password;
}

@Configuration @Profile("default")
public class Basic {
@Bean public String baseURL() { return "http://www.baseURL.com"; }
}

@Configuration @Profile("protected")
public class Protected {
@Bean public String userName() { return "userName"; }
@Bean public String password() { return "password"; }
}

但是,当我运行 protected 测试时,我收到一条通知,指出基本 URL 未正确连接。由于它扩展了 BaseTest,并且两个配置文件都处于 Activity 状态,为什么我没有收到 baseURL bean?

最佳答案

它必须是 @ActiveProfiles({"default","protected"}),在您的情况下,它将假定名称为 default, protected 的配置文件是 Activity 的,不是默认 protected

还有一件事是基类 BaseTest 中的注释不是由 ProtectedTest 派生的,因此您将再次需要放置 @RunWith@ContextConfiguration 让你的测试运行

关于java - Spring 配置的正确继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10756428/

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