Sobes.tech
Junior — Middle
109

Kaip įgyvendinti patikrinimą, ar yra privalomi parametrai, tokie kaip login, slaptažodis ir URL, failo application.properties, kad starteris nepradėtų veikti jų trūkumo atveju?

Įmonės kur klausė
СБЕР КорпусСБЕР Корпус

Atsakymas iš 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("Обязательные параметры не заданы");
    }
}