win_n_n_n_ing 2024-10-24 11:32 采纳率: 0%
浏览 33

请问要如何全局设置@RequestMapping的produces属性值?

项目里使用的是springboot2.7.6版本。

因为文档的需要,我得指定@RequestMapping的produces属性值为application/json:


img


因为Controller会有很多,那样每个Controller都要重复加上produces="application/json"。

有没有什么办法可以节省这部分工作,统一设置所有Controller上标注的@RequestMapping里的produces属性值为application/json呢?

  • 写回答

2条回答 默认 最新

  • 南鸢1.0 2024-10-24 12:41
    关注

    如果你需要在Spring中指定@RequestMapping的produces属性值为 application/json,你可以在你的控制器中直接使用 @RequestMapping 注解。具体代码:

    示例代码```javaimport org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;

    @RestController@RequestMapping(produces = "application/json")
    public class MyController {

    // 此方法的返回类型将会是 application/json @GetMapping("/example")
    public MyResponse example() {
    return new MyResponse("Hello, World!");
    }
    //其他的请求映射也将会默认返回 application/json}

    
    ###说明1. **`@RestController`**:用于标识控制器,表示这个控制器会返回响应体内容(JSON)。  
    2. **`@RequestMapping(produces = "application/json")`**:在类级别上设置 `produces` 属性,所有在该类中定义的请求映射都会默认使用这个返回类型。  
    
    3. **个别方法**:如果有某些方法希望返回不同的媒体类型,可以在方法上单独声明 `produces` 属性。例如:  
    
     ```java @GetMapping(value = "/otherExample", produces = "text/plain")  
     public String otherExample() {  
     return "Hello, Text!";  
     }
    
    

    这样设置后,你的所有请求处理方法默认都会返回 JSON 格式的数据。如果有其他需求,也可以在方法级别进行单独设置。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月24日