Инъекция свойств микронавта в ученики не работает
Я не могу понять, что я делаю неправильно в следующем отличном контроллере. Аннотации @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
файл.
Я проверяю, это работает.
в
application.properties
добавил эту строкуg2g.apikey: abcd-1234
в моем контроллере читает это как
@Property(name ='g2g.apikey') String apiKey
это работает для меня.