我无法弄清楚在以下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
答案 0 :(得分:0)
对于@Property
批注,我们需要在application.properties
文件中定义值。
我对此进行了测试。
application.properties
中的添加了这一行g2g.apikey: abcd-1234
在我的控制器中读为
@Property(name ='g2g.apikey') String apiKey
它为我工作。