如何在Spring中添加HTTP生命周期中间件处理程序?

Bodokaiser

我有一个CustomerController.java

package com.satisfeet.http;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.satisfeet.core.model.Address;
import com.satisfeet.core.model.Customer;
import com.satisfeet.core.service.CustomerService;

@RestController
@RequestMapping("/customers")
public class CustomerController {

    @Autowired
    private CustomerService service;

    @RequestMapping(method = RequestMethod.GET)
    public Iterable<Customer> index() {
        return this.service.list();
    }

    @RequestMapping(method = RequestMethod.POST)
    public Customer create(@RequestBody Customer customer) {
        this.service.create(customer);

        return customer;
    }

    @RequestMapping(method = RequestMethod.GET, value = "/{id}")
    public Customer show(@PathVariable Integer id) {
        return this.service.show(id);
    }

    @RequestMapping(method = RequestMethod.PUT, value = "/{id}")
    public void update(@PathVariable Integer id, @RequestBody Customer customer) {
        this.service.update(id, customer);
    }

    @RequestMapping(method = RequestMethod.DELETE, value = "/{id}")
    public void destroy(@PathVariable Integer id) {
        this.service.delete(id);
    }

}

ExceptionController.java

package com.satisfeet.http;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;

import com.satisfeet.core.exception.NotFoundException;

@ControllerAdvice
public class ExceptionController {

    @ExceptionHandler(NotFoundException.class)
    public ResponseEntity notFoundError() {
        return new ResponseEntity(HttpStatus.NOT_FOUND);
    }

}

我现在想添加某种HTTP请求-响应中间件,该响应在编写响应之前执行,并将HTTP状态代码写入json:

HTTP/1.1 404 OK
Connection: close
Content-Type: application/json

{"error":"not found"}

我知道如何将a转换HttpStatus为a,String但是我不知道在哪里可以使用进行全局转换@ControllerAdvice

那么,如何注册可以访问响应对象的全局处理程序?

用户名

我认为你正在寻找春天Interceptor

请查看本教程教程描述了如何使用拦截器。

使用HandlerInterceptor检查spring文档的拦截请求

终于在这里检查这个答案

希望能有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在新的SwiftUIApp生命周期中处理SceneDelegate willConnectTo方法

来自分类Dev

如何在与生命周期无关的类中处理 Observable?

来自分类Dev

Android-如何在整个应用程序生命周期中使用ORMLite dbhelper

来自分类Dev

如何在中间件和处理程序中读取Iron请求?

来自分类Dev

如何在Spark Streaming应用程序的生命周期中使SQLContext实例保持活动状态?

来自分类Dev

如何在Rails 4.2应用程序中添加中间件

来自分类Dev

如何在连接中向中间件添加模式?

来自分类Dev

在Apache Camel中将处理器添加到路由的生命周期中

来自分类Dev

在使用生命周期参数的函数调用中如何处理结构参数的生命周期?

来自分类Dev

在流的生命周期中缓存处理后的消息

来自分类Dev

在ViewControllers生命周期中的何处添加子视图

来自分类Dev

如何在长期运行的过程中处理实体框架的生命周期?

来自分类Dev

了解程序生命周期中的类引用

来自分类Dev

如何在生命周期中检测进程的最高CPU使用率

来自分类Dev

如何在Sitecore中获取商品的生命周期

来自分类Dev

如何在Sitecore中获取商品的生命周期

来自分类Dev

如果已设置标头,如何使用自定义http处理程序/中间件?

来自分类Dev

如何在Laravel中使用auth:api护照中间件添加CORS中间件?

来自分类Dev

GWT:如何在UI活页夹中重新初始化窗口小部件,以丢弃其生命周期中获得的所有更改?

来自分类Dev

如何在Django的CSRF中间件中处理utf-8与punycode问题?

来自分类Dev

在手机中的整个Android应用程序生命周期中存储变量的方法

来自分类Dev

伴随对象是否在应用程序的生命周期中保留在内存中

来自分类Dev

在手机中的整个Android应用程序生命周期中存储变量的方法

来自分类Dev

如何在Express上添加404错误的中间件

来自分类Dev

如何在组路由中添加额外的中间件?

来自分类Dev

登录中间件异常处理程序

来自分类常见问题

如何在Redux中添加多个中间件?

来自分类Dev

如何在控制器构造函数中添加两个中间件

来自分类Dev

如何在jdeveloper融合中间件应用程序中调用页面加载函数?

Related 相关文章

  1. 1

    如何在新的SwiftUIApp生命周期中处理SceneDelegate willConnectTo方法

  2. 2

    如何在与生命周期无关的类中处理 Observable?

  3. 3

    Android-如何在整个应用程序生命周期中使用ORMLite dbhelper

  4. 4

    如何在中间件和处理程序中读取Iron请求?

  5. 5

    如何在Spark Streaming应用程序的生命周期中使SQLContext实例保持活动状态?

  6. 6

    如何在Rails 4.2应用程序中添加中间件

  7. 7

    如何在连接中向中间件添加模式?

  8. 8

    在Apache Camel中将处理器添加到路由的生命周期中

  9. 9

    在使用生命周期参数的函数调用中如何处理结构参数的生命周期?

  10. 10

    在流的生命周期中缓存处理后的消息

  11. 11

    在ViewControllers生命周期中的何处添加子视图

  12. 12

    如何在长期运行的过程中处理实体框架的生命周期?

  13. 13

    了解程序生命周期中的类引用

  14. 14

    如何在生命周期中检测进程的最高CPU使用率

  15. 15

    如何在Sitecore中获取商品的生命周期

  16. 16

    如何在Sitecore中获取商品的生命周期

  17. 17

    如果已设置标头,如何使用自定义http处理程序/中间件?

  18. 18

    如何在Laravel中使用auth:api护照中间件添加CORS中间件?

  19. 19

    GWT:如何在UI活页夹中重新初始化窗口小部件,以丢弃其生命周期中获得的所有更改?

  20. 20

    如何在Django的CSRF中间件中处理utf-8与punycode问题?

  21. 21

    在手机中的整个Android应用程序生命周期中存储变量的方法

  22. 22

    伴随对象是否在应用程序的生命周期中保留在内存中

  23. 23

    在手机中的整个Android应用程序生命周期中存储变量的方法

  24. 24

    如何在Express上添加404错误的中间件

  25. 25

    如何在组路由中添加额外的中间件?

  26. 26

    登录中间件异常处理程序

  27. 27

    如何在Redux中添加多个中间件?

  28. 28

    如何在控制器构造函数中添加两个中间件

  29. 29

    如何在jdeveloper融合中间件应用程序中调用页面加载函数?

热门标签

归档