У меня есть Bean определенные в классе, украшенной @Configuration:
@Configuration
public class MyBeanConfig {
    @Bean
    public String configPath() {
        return "../production/environment/path";
    }
}
  У меня есть класс, украшенный @TestConfiguration, который должен переопределить этот Bean:
@TestConfiguration
public class MyTestConfiguration {
    @Bean
    @Primary
    public String configPath() {
        return "/test/environment/path";
    }
}
  Компонент configPath используется для установки пути к внешнему файлу, содержащему регистрационный код, который должен быть прочитан во время запуска. Он используется в классе @Component:
@Component
public class MyParsingComponent {
    private String CONFIG_PATH;
    @Autowired
    public void setCONFIG_PATH(String configPath) {
        this.CONFIG_PATH = configPath;
    }
}
  При попытке отладить это, я устанавливаю точку останова внутри каждого метода, а также конструктор тестового конфигурационного класса. @TestConfiguration точка останова конструктора @TestConfiguration, поэтому я знаю, что мой тестовый класс конфигурации configPath(), однако метод configPath() этого класса никогда не попадает. Вместо этого используется метод configPath() класса normal @Configuration и @Autowired String в MyParsingComponent всегда ../production/environment/path а не ожидаемый /test/environment/path.
Не знаю, почему это происходит. Любые мысли были бы весьма признательны.