实际项目中,后台接口返回的内容是要加密的
(我们可以在每个接口返回前手动加密、返回,这样总觉得不爽)
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); }
相关推荐
MultipleOutputsWithConditionsService:另一个有条件路由的自定义处理器,但是使用基于注释的标头过滤器进行声明性路由,而不是对条件进行编程检查。 请注意,使用此版本的SCS无法有条件地检查有效载荷。 ...
标头名称的多语言处理可通过MessageConverter函数进行。 它提供元数据缓存功能以启用快速解析。 有关其他各种功能和用法,请参阅页面。 兼容性 Spring Boot 2.2或更高版本 释放 最新版本:1.2.1 热门使用 这是...
NULL 博文链接:https://elim.iteye.com/blog/1900937
基于springboot集成mybatis、durid和自定义消息转换项目,实现阿里巴巴的durid对数据库连接池的设置和自定义消息转换的messageconverter,能够快速开发自己的应用。
对于日志脱敏的方式有很多,常见的有①使用conversionRule标签,继承MessageConverter②书写一个脱敏工具类,在打印日志的时候对特定特字段进行脱敏返回。 两种方式各有优缺点:第一种方式需要修改代码,不符合开闭...
几乎是网上 能找到的 日志脱敏的所有实现 1、基于正则表达式的 日志脱敏实现 ,扩展logback 、log4j 2、springmvc 返回报文脱敏。 3、基于注解方式的脱敏。 大家选择使用。
算法原始分析:code-analysis设计模式手写mybatis手写spring,springMVC并发:并发螺纹池分布式:Distributed 生物,蔚来净值rmijdk:jdk分析反射安全杰姆克斯函数接口片断探究React性-x:React性-x API使用微服务:...
MessageConverter MessageCreator MessageEOFException MessageFormatException MessageListenerAdapter MessageListenerAdapter102 MessageNotReadableException MessageNotWriteableException ...
其实在使用MessageListenerAdapter时,Spring默认为我们提供了SimpleMessageConverter转换器.. 事务(无代码): 在Spring整合JMS的应用中,如果我们要进行本地的事务管理的话非常简单,只需要在定义对应的消息监听...
相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean, 配置一些messageconverter。即解决了@Controller注解的使用前提配置。
配置一些messageconverter。即解决了@Controller注解的使用前提配置<context:annotation-config/>是对包进行扫描,实现注释驱动Bean定义,同时将bean自动注入容器中使用。即解决了@Controller标识的类的bean的注入和...
在Eclipse中导入项目 确保bin / io / confluent / connect / rabbitmq / MessageConverter.class已编译 运行path.sh以在out / kafka-connect-rabbitmq-1.0.0-preview_patch.jar中生成修补的lib