我使用 @RestController
和 @RequestMapping
注释来通过 spring-mvc
定义我的所有 servlet。
问题:如何为这些注释定义一些默认值,这样我就不必重复相同的配置,例如 consumes
和 products
?
我希望始终应用以下配置,而不必在每个路径上重复它:
@GetMapping(produces = {APPLICATION_XML_VALUE, APPLICATION_JSON_VALUE})
@PostMapping(
consumes = {APPLICATION_XML_VALUE, APPLICATION_JSON_VALUE},
produces = {APPLICATION_XML_VALUE, APPLICATION_JSON_VALUE})
最佳答案
可能最简单的方法是创建一个自定义的 @RestController 注释并在类级别使用它。然后我只需要重复 @PostMapping(consumes...)
映射:
@Target(ElementType.TYPE)
@Retention(value=RUNTIME)
@RestController
@RequestMapping(produces = {APPLICATION_JSON_VALUE, APPLICATION_XML_VALUE})
public @interface DefaultRestController {
}
用法如下:
@DefaultRestController
public class MyServlet {
@GetMapping("/getmap") //inherits the 'produces' mapping
public void getmap() {
}
@PostMapping("/postmap", consumes = {APPLICATION_JSON_VALUE, APPLICATION_XML_VALUE})
public void postmap() {
}
}
总比没有好。
关于java - 如何设置@RequestMapping的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45215246/