Spring Boot groovy编译错误:Unexpected token @ @ line 45

2024-01-17

我正在尝试将 Spring Boot 项目中的 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

在爪哇,{"/v1/foo", "foo"}是一个数组文字

在 Groovy 中,{"/v1/foo", "foo"}是一个闭包

错误消息显然没有帮助,但为了解决这个问题,我只需要更改 Groovy 中的注释以按照我的预期传递数组文字,而不是闭包

@RequestMapping(value = ["/v1/foo", "/foo"], method = GET)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot groovy编译错误:Unexpected token @ @ line 45 的相关文章

随机推荐