java - 如何设置@RequestMapping的默认值?

标签 java spring spring-mvc

我使用 @RestController@RequestMapping 注释来通过 spring-mvc 定义我的所有 servlet。

问题:如何为这些注释定义一些默认值,这样我就不必重复相同的配置,例如 consumesproducts

我希望始终应用以下配置,而不必在每个路径上重复它:

@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/

相关文章:

java - Spring data jpa datatables : javax. persistence.EntityNotFoundException:无法找到实体

java - 在 Spring 查询中从当前日期减去 6 个月

java - 使用静态工厂方法获取更新了一个字段的新实例是否正确?

spring - jQuery mobile - 浏览器刷新页面后完全困惑

java - 1 html 形式的 spring mvc 中的 pojo 类的多个对象?

java - 获取 java.rmi.UnmarshalException : unrecognized method hash: method not supported by remote object

java - 处理连接错误的最佳实践

java - 从文件夹加载类而不指定包

html - 在 th :href link 中使用模型属性

java - 如何根据 thymeleaf 中的变量值打印不同的文本?