Вы должны использовать пружинные профили и реализовать ваш чек немного объект немного мор ориентированный:
I предположим, что ваш код выглядит примерно так, и Logic
родник управляемый компонент:
@Component
public class Logic {
public void doIt() {
doMoreLogic();
if (yourProperty == true) {
your();
certain();
instructions();
}
doWhateverYouWant();
}
}
Если извлечь определенную логику в классе, то вы можете сделать это более объектно-ориентированный путь:
public interface PlatformDependentLogic {
void platformInstructions();
}
@Component @Profile("dev")
public class DevLogic implements PlatformDependentLogic {
public void platformInstructions() {
your();
certain();
instructions();
}
}
@Component @Profile("!dev")
public class NoopLogic implements PlatformDependentLogic {
public void platformInstructions() {
// noop
}
}
Теперь вы можете ссылаться на логику, делая это в Logic боба:
@Component
public class Logic {
private @Autowired PlatformDependentLogic platformLogic;
public void doIt() {
doMoreLogic();
platformLogic.platformInstructions();
doWhateverYouWant();
}
}
Конечно, вы можете использовать загрузку пружинный конкретных @ConditionalOnProperty
вместо @Profile
аннотацию, как это:
@ConditionalOnProperty(name="your.property", hasValue="dev")
Чтобы получить лучшее понимание этой аннотации и как workds вы должны прочитать official documentation of @ConditionalOnProperty
Какие «инструкции»? Вы имеете в виду, что свойства конфигурации отличаются между envs или вам нужно выполнить какой-либо фактический код в зависимости от env? – rorschach
Вы можете попробовать весенние профили. –