实际项目中,后台接口返回的内容是要加密的
(我们可以在每个接口返回前手动加密、返回,这样总觉得不爽)
Spring的MessageConverter正是用于转换数据(输入、输出)的
所以,可以通过自定义一个MessageConverter,比较简洁地实现这个需求。
1. 为了最小的影响框架的功能,复用Jackson的Converter
【AbstractJackson2HttpMessageConverter】
【MappingJackson2HttpMessageConverter】
其中,【 protected void writeInternal】是往Response输出内容。
2. 修改
AbstractJackson2HttpMessageConverter#writeInternal
// this.objectMapper.writeValue(generator, result); String str = objectMapper.writeValueAsString(result); // ① 转换成JSON格式字符串 String str2 = encrypt(str) // ② 加密返回值 outputMessage.getBody().write(str.getBytes()); // ③ 输出到Response
说明
1. 用Spring框架的话,返回值自然是一个统一的ResultVO
2. 基于上面这点,从抽象类【AbstractJackson2HttpMessageConverter】冲去掉了【implements GenericHttpMessageConverter<Object>】,
顺次删除【canWrite】【canRead】等。
3. 修改AbstractJackson2HttpMessageConverter#supports
@Override protected boolean supports(Class<?> clazz) { return ResultVO.class.isAssignableFrom(clazz); }
相关推荐
标题中的"spring-amqp"、"spring-retry"和"spring-rabbit"是Spring框架的三个关键组件,它们主要用于构建高效、可靠的分布式系统,尤其是在消息传递和错误处理方面。 1. **Spring AMQP**: Spring AMQP是Spring框架...
- **安全控制**:Spring-WS 支持 WS-Security 标准,可以实现用户认证、消息加密等功能。 - **消息转换**:通过 MessageConverter,可以将 SOAP 消息与其他格式(如 JSON)之间进行转换。 - **集成测试**:Spring-...
Spring AMQP是Spring框架的一个扩展,它提供了在Java应用程序中使用Advanced Message Queuing Protocol (AMQP)的全面支持。AMQP是一种开放标准,用于在分布式系统中进行异步消息传递,而Spring AMQP则将这种强大的...
Spring Kafka是Spring框架的一部分,专为集成Apache Kafka而设计,提供了一套轻量级且强大的API,使得在Java应用中使用Kafka变得更加简单。本文将围绕Spring Kafka的源代码进行深度解析,帮助开发者更好地理解和运用...
3. **消息转换**: Spring JMS支持消息与应用程序对象之间的转换,通过MessageConverter接口实现。这使得可以将Java对象序列化为消息体,反之亦然。 4. **事务管理**: Spring JMS允许与Spring的声明式事务管理集成,...
`org.springframework.jms.support.converter`包则包含了`MessageConverter`接口,用于在Java对象和JMS消息之间进行转换,实现数据的序列化和反序列化。`org.springframework.jms.support.destination`包提供了目标...
支持多种模板引擎,如FreeMarker、Velocity和Groovy,使得视图渲染更加便捷,同时支持使用SpEL(Spring Expression Language)在模板中进行表达式计算。 10. **性能优化**: 3.1.1版本还包含了性能上的优化,比如...
5. **消息转换**:Spring Messaging提供了`MessageConverter`接口,用于在消息对象和实际传输的数据之间进行转换,比如JSON或XML。 6. **事务支持**:为了保证消息的可靠传递,Spring支持基于JMS事务或AMQP事务的...
同时,Spring MVC 还支持自定义消息转换器(MessageConverter),方便我们处理不同格式的请求和响应,如 JSON、XML。 总结来说,Spring MVC 是一个功能强大且灵活的 Web 开发框架,它提供了一套完整的解决方案,...
**Spring MVC 框架详解** Spring MVC 是 Spring 框架的一个重要组成部分,它是一个用于构建 Web 应用程序的轻量级、模型-视图-控制器(MVC)框架。Spring MVC 提供了丰富的功能,使得开发人员能够轻松地处理 HTTP ...
7. **拦截器(Interceptor)**:Spring MVC允许定义拦截器,它们可以在请求处理前后执行自定义逻辑,如权限检查、日志记录等。 8. **HandlerAdapter**:适配器模式的体现,Spring MVC使用HandlerAdapter来调用控制器...
Spring MVC是Spring Framework中的Web开发模块,3.2.x版本引入了更多增强,如类型安全的路径变量、自定义异常处理、改进的视图解析等。`@RequestMapping`、`@Controller`、`@ResponseBody`等注解帮助构建RESTful服务...
Spring Messaging提供了`MessageConverter`接口,用于在消息体和Java对象之间进行转换。常见的实现有`SimpleMessageConverter`和`Jackson2JsonMessageConverter`,分别支持基本类型和JSON格式的数据。 `...
本文将深入探讨Spring与JMS的整合,特别是MessageConverter的概念及其作用。 一、Spring JMS概述 Spring提供了对JMS的全面支持,包括连接工厂配置、消息生产者、消费者以及消息转换器等。JMS允许应用程序通过消息...
如果需要自定义消息的序列化和反序列化,可以实现 `MessageConverter` 接口,比如使用 Jackson JSON 支持: ```java @Component public class JsonMessageConverter extends AbstractMessageConverter { ...
7. **消息转换器**: Spring JMS提供了一些内置的消息转换器,如`StringMessageConverter`,可以根据需要自定义转换规则,确保消息体能在消息生产者和消费者之间正确转换。 8. **Web层整合**: 将JMS与RESTful API...
4. **定义消息转换器**:如果你需要发送和接收自定义对象,需要定义一个消息转换器,如`Jackson2JsonMessageConverter`,将对象转换成JSON字符串。 5. **声明交换机和队列**:在Spring配置中,声明RabbitMQ的交换机...
Spring JMS(Java Message Service)是Spring框架的一部分,它为Java消息传递提供了一种轻量级的抽象层,使得开发者能够方便地在应用程序中使用JMS。Spring JMS提供了对JMS API的高度封装,简化了消息生产者和消费者...
MultipleOutputsWithConditionsService:另一个有条件路由的自定义处理器,但是使用基于注释的标头过滤器进行声明性路由,而不是对条件进行编程检查。 请注意,使用此版本的SCS无法有条件地检查有效载荷。 ...
你可以使用` Jackson2JsonMessageConverter `将对象自动序列化为JSON字符串,或者反序列化JSON字符串为对象。这使得不同系统之间可以通过RabbitMQ共享结构化的数据。 5. **自定义确认消息**:RabbitMQ支持两种确认...