Sobes.tech
Junior — Middle

How to check for the presence of required parameters such as login, password, and URL in the application.properties file so that the starter does not run if they are missing?

sobes.tech AI

Answer from AI

To check for the presence of required parameters in application.properties and prevent the starter from launching if they are missing, you can use the @ConfigurationProperties annotation along with validation, or manually check the parameters in the configuration class.

Example using @ConfigurationProperties and validation:

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

    @NotBlank
    private String login;

    @NotBlank
    private String password;

    @NotBlank
    private String url;

    // getters and setters
}

And in the configuration:

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

    @Bean
    public SomeStarter someStarter(AppProperties props) {
        // if parameters are invalid, the application will not start
        return new SomeStarter(props.getLogin(), props.getPassword(), props.getUrl());
    }
}

If the parameters are missing or empty, Spring will throw an exception during validation, and the starter will not launch.

Alternatively, you can manually check the parameters in a @PostConstruct method and throw an exception if something is missing:

@PostConstruct
public void validate() {
    if (login == null || login.isEmpty() || password == null || password.isEmpty() || url == null || url.isEmpty()) {
        throw new IllegalStateException("Required parameters are not set");
    }
}
How to check for the presence of required parameters… - sobes.tech