javaspring-bootspring-properties

Is there a way to validate @Value in spring boot?


I'm using @Value to inject parameters from my properties file to variable in my application.
Because I'm not the only user in the application and I want to make the injection safety I need to validate the parameter before the injection.

Example:

properties file:

example.string=str1,str2

app.java

@Value(${example.string})
public String example;

the expected behavior in this case for example is to throw an exception because I assume "," id delimiter in array case


Solution

  • I don't think you can directly with @Value. But you could do something like this, which will fail on startup if validation fails:

    @Validated
    @ConfigurationProperties(prefix="my.prefix")
    public class AppProperties {
    
      //Validation annotations here
      //@NotEmpty
      //@MyCustomValidation
      private String exampleString;
    
    
      // getters / setters
    }