1

我无法弄清楚我在以下 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
4

1 回答 1

0

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

我测试了它的工作原理。

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

  2. 在我的控制器中将其读取为

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

它为我工作。

于 2019-01-10T03:41:18.813 回答