使用 application.yml 文件中的正则表达式并在 pojo class 中使用(模式评估)

using regex from application.yml file and use in pojo class(pattern evaluation)

我尝试了一些方法:

1。 application.yml 文件

 internationalchar:
      regex:
        expression: "^[\p{L}\p{M}\p{Nd}\°\' ]+$"

在 POJO 中使用 Class

@Pattern(regexp = "${internationalchar.regex.expression}", message = "FSTU_4108,Name")
private String name;

错误:索引附近的非法重复 0\r\n${internationalchar.regex.expression}\r\n^"

2.Also 尝试使用转义字符

@Pattern(regexp = "//$//{internationalchar.regex.expression//}", message = "FSTU_4108,Name")

3.Using @Value 属性 @Value("${ficoInternationalChar.regex.expression}") 无法读取我的正则表达式(给出无效名称的错误)

4.

@Value("${internationalchar.regex.expression}")
 private String environment;
 @Pattern(regexp = environment, message = "FSTU_4108,Name")
  private String name;

Attribute value must be constant 错误(尝试将环境设为最终但同样的错误)

注意:我是 java 初学者

很遗憾,@Pattern 注释不支持您正在尝试执行的操作。它的regexp属性不支持占位符,必须直接定义正则表达式。

如果您希望能够外部化模式,则必须实施自定义 ConstraintValidator