Reputation: 619
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
Upvotes: 3
Views: 1715
Reputation: 848
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
}
Upvotes: 2
Reputation: 526
I don't think you can do this before the injection, try to use the post construct method
you can do some thing like that :
@PostConstruct
public void validateValue() {
if (someProperty.contains(",")) {
throw new MyException("error");
}
}
Upvotes: 0