Spring Boot groovy compilation error: Unexpected token @ @ line 45
Spring Boot groovy compilation error: Unexpected token @ @ line 45
我正在尝试将我的 Spring 引导项目中的 Java 控制器转换为 Groovy,并在尝试编译和 运行
unexpected token: @ @ line 45, column 5
@RequestMapping(value = {"/v1/foo", "/foo"}, method = GET)
^
这让我感到莫名其妙。注释是Java或Groovy中的注释,对吧?我错过了什么?这是我的代码的抽象
// src/main/groovy/my/package/FooController.groovy, formerly .java
/// ... proper imports
@RestController
@EnableAutoConfiguration
public class FooController {
// ... @autowire services
@RequestMapping(value = {"/v1/foo", "/foo"}, method = GET)
public ResponseEntity get(@RequestHeader HttpHeaders headers) {
// do work return ResponseEntity
}
@RequestMapping(value = {"/v1/foo", "/foo"}, method = PUT)
public ResponseEntity put(@RequestHeader HttpHeaders headers, @ResponseBody @Valid final MyFoo myFoo) {
// do work return ResponseEntity
}
}
所以我只是愚蠢,错过了 Java 和 Groovy
之间的关键区别
问题是 value
我要传递给 @RequestMapping
在Java中,{"/v1/foo", "foo"}
是一个数组字面量
在Groovy中,{"/v1/foo", "foo"}
是一个闭包
错误消息显然没有帮助,但要解决此问题,我只需要更改 Groovy 中的注释以按我的意图传入数组文字,而不是闭包
@RequestMapping(value = ["/v1/foo", "/foo"], method = GET)
我正在尝试将我的 Spring 引导项目中的 Java 控制器转换为 Groovy,并在尝试编译和 运行
unexpected token: @ @ line 45, column 5
@RequestMapping(value = {"/v1/foo", "/foo"}, method = GET)
^
这让我感到莫名其妙。注释是Java或Groovy中的注释,对吧?我错过了什么?这是我的代码的抽象
// src/main/groovy/my/package/FooController.groovy, formerly .java
/// ... proper imports
@RestController
@EnableAutoConfiguration
public class FooController {
// ... @autowire services
@RequestMapping(value = {"/v1/foo", "/foo"}, method = GET)
public ResponseEntity get(@RequestHeader HttpHeaders headers) {
// do work return ResponseEntity
}
@RequestMapping(value = {"/v1/foo", "/foo"}, method = PUT)
public ResponseEntity put(@RequestHeader HttpHeaders headers, @ResponseBody @Valid final MyFoo myFoo) {
// do work return ResponseEntity
}
}
所以我只是愚蠢,错过了 Java 和 Groovy
之间的关键区别问题是 value
我要传递给 @RequestMapping
在Java中,{"/v1/foo", "foo"}
是一个数组字面量
在Groovy中,{"/v1/foo", "foo"}
是一个闭包
错误消息显然没有帮助,但要解决此问题,我只需要更改 Groovy 中的注释以按我的意图传入数组文字,而不是闭包
@RequestMapping(value = ["/v1/foo", "/foo"], method = GET)