如何检查是否${service.property}不是空字符串,如果是,则抛出某种可读的异常?它必须在Bean创建期间发生。
@Component
public class Service {
@Value("${service.property}")
private String property;
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找最简单的方法(编写最少的代码)。如果使用注释,那就太好了。
我当前的解决方案是在属性的设置器中执行“手写”验证,但是对于这种简单的事情来说,代码太多了。
提示:我一直在寻找使用SpEL的方法,因为我已经在内部使用它了@Value,但据我所知,它并不是那么容易/干净。但是本可以忽略一些东西。
澄清:预期的行为是该应用程序将无法启动。目的是确保设置所有属性,尤其是确保字符串属性不为空。错误应该清楚地说明,缺少什么。我不想设置任何默认值!用户必须全部设置。
我的配置文件中有一些值,它应该是 JSON(它将作为字符串加载)。
我希望 Spring 在注入之前验证该值确实是有效的 JSON,否则会抛出错误。
我已经阅读了现有的验证注释,例如 - @NotNull、@Size、@Min、@Max、@Email等@NotEmpty。
有没有办法创建自定义验证器?
我想要一个验证器尝试将字符串转换为 JSON,如以下示例所示:How to conversion jsonString to JSONObject in Java。