一种拦截响应对象中的所有字符串并在将其发送到服务器之前执行一些操作的方法

时间:2018-10-02 03:19:27

标签: spring-boot jackson2

我正在使用基于Spring Boot的堆栈。它是一个旧的代码库。我想要做的是在将对象发送给客户端作为响应之前,对一种对象执行操作。例如,假设我有一个Person类,其定义为(伪代码): class Person(firstName: String, lastName: String, age: Int)。现在,当将其作为响应发送到服务器时,我想对类型为trim的所有成员执行String操作。有没有办法做到这一点?到目前为止,我所做的工作是创建一个MappingJackson2HttpConverter实例和一个ObjectMapper,并将其链接到MappingJackson2HttpConverter的实例。该转换器在标记为HttpMessageConverters并扩展为@COnfiguration的类中添加到WebMvcConfirurerAdapter的列表中。因此,这里有两件事:

  • 这是正确的方法吗?
    • 如果是,该如何实施ObjectMapper

1 个答案:

答案 0 :(得分:0)

您可以使用Spring提供的ResponseBodyAdvice<T>。它允许在执行@ResponseBodyResponseEntity控制器方法之后但在用HttpMessageConverter编写正文之前自定义响应。

链接:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyAdvice.html