У меня есть 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
, поэтому я знаю, что мой класс конфигурации теста создается, но метод configPath()
этого класса никогда не срабатывает.Вместо этого вызывается метод configPath()
обычного класса @Configuration, и @Autowired
String
в MyParsingComponent
всегда ../production/environment/path
, а не ожидаемый /test/environment/path
.
Не уверен, почему этоэто происходит.Любые мысли будут с благодарностью.