Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring配置的正确继承_Java_Spring_Configuration - Fatal编程技术网

Java Spring配置的正确继承

Java Spring配置的正确继承,java,spring,configuration,Java,Spring,Configuration,我正在创建一个利用新Spring配置的项目。我有一个基类,它包含一些属性: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {Basic.class, Protected.class}) public class BaseTest { @Autowired(required = false) protected String userName; @Autowired(required = fa

我正在创建一个利用新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"; }
}

但是,当我运行受保护的测试时,我会收到一个通知,说明基本URL没有正确连接。既然它扩展了BaseTest,并且两个配置文件都处于活动状态,为什么我没有收到baseURL bean?

它必须是
@ActiveProfiles({“default”,“protected”})
,在您的情况下,它将假定名为
default,protected
的配置文件处于活动状态,而不是
default
protected


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

这是漫长的一天,我刚刚从我的环境变量配置中复制了它。但是这里有两件事需要注意:您不必添加RunWith on或ContextConfigurations