如何重载使用@requestbody的spring boot restcontroller方法?

cdmah0mi  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(659)

我对超负荷工作感兴趣 @PostMapping 例如,/digital/testcase,有两个单独的签名,使用 @RequestBody 传递数据的注解,而不是 @RequestParams . 这一点很重要,因为关于stackoverflow的所有其他问题都与后者有关。目前,当我尝试重载一个函数时,SpringBoot会崩溃。
对于那些对代码感兴趣的人来说,应该是这样的

package com.example.test;

import *

@RestController
@RequestMapping(path = "/digital", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)

public class TestController {

    private static final Logger LOG = LoggerFactory.getLogger(TestController.class);

    @Autowired
    private testDomain testDomain;

    @PostMapping("/testCase")
    public ResponseEntity<Object> testCase(@RequestBody InitiateTestCase initiateTestCase,
                                               HttpServletRequest request) {

        //
        ...some code here
        //
    }

    @PostMapping("/testCase")
    public ResponseEntity<Object> testCase(@RequestBody InitiateTestCase[] initiateTestCases,
                                               HttpServletRequest request) {

        //
        ...some code here
        //
    }
}
izj3ouym

izj3ouym1#

您可以尝试将一些特定的参数/头添加到postmapping注解中,以便spring能够正确地Map它。解决这类问题的另一种方法是将pojo抽象为requestbody,而不是重载方法。

相关问题