首页 > 解决方案 > 如何在@Pattern 中使用@Value

问题描述

如何在 @Pattern 中使用应用程序配置值?

这是一个(不工作)示例:

    @GetMapping(value = "/foo", params = { "id" })
    public Foo getFoo(@RequestParam("id") @Pattern(regexp = @Value("${validation.myRegex}")) String id) {
        return null;
    }

这也不起作用(由 Eklavya 提到):

    @GetMapping(value = "/foo", params = { "id" })
    public Foo getFoo(@RequestParam("id") @Pattern(regexp = "${validation.myRegex}") String id) {
        return null;
    }

如果我这样使用它,它会起作用:fooBar(@Value("${validation.myRegex}") String myRegex)所以问题是如何使用模式注释的值?

我的 application.yaml 看起来像这样:

spring:
  application:
    name: 'My Awesome App'
validation:
  myRegex: '[a-zA-Z0-9]*'

标签: javaspringvalidationannotations

解决方案


推荐阅读