Sobes.tech
Back to questions
Junior — Middle
64

Каким образом реализовать проверку наличия обязательных параметров, таких как логин, пароль и URL, в файле application.properties, чтобы стартер не запускался при их отсутствии?

Companies where asked
СБЕР КорпусСБЕР Корпус

Answer from AI

sobes.tech AI

Для проверки наличия обязательных параметров в application.properties и предотвращения запуска стартера при их отсутствии, можно использовать аннотацию @ConfigurationProperties вместе с валидацией, либо проверять параметры вручную в конфигурационном классе.

Пример с использованием @ConfigurationProperties и валидации:

@ConfigurationProperties(prefix = "app")
@Validated
public class AppProperties {

    @NotBlank
    private String login;

    @NotBlank
    private String password;

    @NotBlank
    private String url;

    // геттеры и сеттеры
}

И в конфигурации:

@Configuration
@EnableConfigurationProperties(AppProperties.class)
public class AppConfig {

    @Bean
    public SomeStarter someStarter(AppProperties props) {
        // если параметры невалидны, приложение не запустится
        return new SomeStarter(props.getLogin(), props.getPassword(), props.getUrl());
    }
}

Если параметры отсутствуют или пусты, Spring выбросит исключение при валидации, и стартер не запустится.

Альтернативно, можно вручную проверить параметры в методе @PostConstruct и выбросить исключение, если что-то отсутствует:

@PostConstruct
public void validate() {
    if (login == null || login.isEmpty() || password == null || password.isEmpty() || url == null || url.isEmpty()) {
        throw new IllegalStateException("Обязательные параметры не заданы");
    }
}