在编译时验证 属性 application.yml 中的名称
Validate at compile time property names in application.yml
我想检查是否可以在编译时而非运行时验证 属性 名称。
我的 application.yml 需要这样的数据-
john:
firstName: John
lastName: Doe
age: 30
address: efghhhhh
email: john.doe@gmail.com
我的ApplicationProperties.java是这样的-
@Data
@Configuration
@PropertySource(value = "classpath:employee.yml", factory = YamlPropertySourceFactory.class)
public class ApplicationProperties {
private Employee john;
}
我的控制器得到这样的数据 -
private final ApplicationProperties applicationProperties;
applicationProperties.getJohn();
我想确定如果有人错误地将“john”更改为“joohn”,它应该在编译时抛出错误。现在编译工作正常,它在运行时抛出 NullPointerException。是否可以实现 属性 名称的编译时检查?如果是这样,请告诉我该怎么做?
谢谢!
不是在编译时,但您可以通过为您的道具创建 @Validated @ConfigurationProperties(prefix = "john")
并将验证规则(如 @NotNull
放在相关属性的顶部)来确保应用程序快速失败。
有关详细信息,请参阅 here。
我想检查是否可以在编译时而非运行时验证 属性 名称。 我的 application.yml 需要这样的数据-
john:
firstName: John
lastName: Doe
age: 30
address: efghhhhh
email: john.doe@gmail.com
我的ApplicationProperties.java是这样的-
@Data
@Configuration
@PropertySource(value = "classpath:employee.yml", factory = YamlPropertySourceFactory.class)
public class ApplicationProperties {
private Employee john;
}
我的控制器得到这样的数据 -
private final ApplicationProperties applicationProperties;
applicationProperties.getJohn();
我想确定如果有人错误地将“john”更改为“joohn”,它应该在编译时抛出错误。现在编译工作正常,它在运行时抛出 NullPointerException。是否可以实现 属性 名称的编译时检查?如果是这样,请告诉我该怎么做?
谢谢!
不是在编译时,但您可以通过为您的道具创建 @Validated @ConfigurationProperties(prefix = "john")
并将验证规则(如 @NotNull
放在相关属性的顶部)来确保应用程序快速失败。
有关详细信息,请参阅 here。