Инъекция свойств микронавта в ученики не работает

Я не могу понять, что я делаю неправильно в следующем отличном контроллере. Аннотации @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 ответ

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

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

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

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

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

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

Другие вопросы по тегам