向班级成员无法使用Micronaut属性注入

时间:2019-01-09 23:44:16

标签: groovy annotations micronaut

我无法弄清楚在以下Groovy控制器中我在做什么。 没有设置类成员g2gApiKey2和g2gApiKey3之前的@Value和@Property批注。 但是,构造函数中g2gk参数之前的@Value注释是

我确实发现@Property存在一个问题,但在Groovy中不起作用,但似乎在micronaut 1.0.1中已修复,这就是我们正在使用的问题。

否则,将设置端点并正常工作。

    @Slf4j
    @Endpoint("translation")
    @Requires(property="g2g.apikey")
    class TranslationController {

        String g2gApiKey

        @Value('${g2g.apikey}')
        String g2gApiKey2

        @Property(name = "g2g.apikey")
        String g2gApiKey3

        TranslationController(@Value('${g2g.apikey}') String g2gk) {
            this.g2gApiKey = g2gk
        }

        @Write
        HttpResponse<Response> post (@Body Request req) {
            // Check for invalid request
            if (req.apiKey != g2gApiKey) return HttpResponse.unauthorized()

            Response rv = new Response()
            return HttpResponse.ok(rv)
        }
    }

这是application.yml,这些属性来自:

g2g:
    apikey: abcd-1234

1 个答案:

答案 0 :(得分:0)

对于@Property批注,我们需要在application.properties文件中定义值。

我对此进行了测试。

    application.properties中的
  1. 添加了这一行g2g.apikey: abcd-1234

  2. 在我的控制器中读为

   @Property(name ='g2g.apikey')
    String apiKey

它为我工作。