Инъекция свойств микронавта в неработающие ученики - PullRequest
0 голосов
/ 10 января 2019

Я не могу понять, что я делаю неправильно в следующем отличном контроллере. Аннотации @Value и @Property перед членами класса g2gApiKey2 и g2gApiKey3 не устанавливаются. Однако аннотация @Value перед параметром g2gk в конструкторе равна .

Я видел, что была проблема с @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 голосов
/ 10 января 2019

для @Property аннотации, нам нужно определить значения в application.properties файле.

Я проверяю, это работает.

  1. в application.properties добавили эту строку g2g.apikey: abcd-1234

  2. в моем контроллере читается как

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

это работает для меня.

...