java - 有没有办法在 spring boot 中验证@Value?

标签 java spring-boot spring-properties

我正在使用 @Value 将属性文件中的参数注入(inject)应用程序中的变量。
因为我不是应用程序中的唯一用户,而且我想确保注入(inject)安全,所以我需要在注入(inject)前验证参数。

示例:

属性文件:

example.string=str1,str2

应用程序.java

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

例如,在这种情况下预期的行为是抛出异常,因为我假设在数组情况下使用“,”id 分隔符

最佳答案

我认为您不能直接使用 @Value。但是你可以做这样的事情,如果验证失败,它会在启动时失败:

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

  //Validation annotations here
  //@NotEmpty
  //@MyCustomValidation
  private String exampleString;


  // getters / setters
}

关于java - 有没有办法在 spring boot 中验证@Value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65436119/

相关文章:

java - 我们是否需要在系统中安装gsutil工具来访问google Cloud

java - Spring Boot项目和com.microsoft.sqlserver.jdbc.SQLServerException : The "variant" data type is not supported

java - 从 WSDL 到 java

spring-boot - 如何使用 Spring Boot Starter oAuth2 客户端在从 Azure Active Directory (AAD) 返回的 OAuth2User 中包含更多属性

java - 如何使用 spring boot websocket 发送二进制文件?

spring - 可以通过属性文件设置 Spring 事件配置文件吗?

java - 在 spring 中将 @Value 与条件一起使用,以便将值映射到字符串

spring - 通过环境变量设置 Spring boot yaml 配置列表属性

Java 版本控制和术语,1.6 vs 6.0 OpenJDK vs Sun

java - JBI 和 SCA 之间有何区别/相似之处