SpringBoot - MappingJackson2HttpMessageConverter 功能增强:添加 jsonp 请求响应(新)
发布日期:2021-06-30 17:03:57
浏览次数:2
分类:技术文章
本文共 1904 字,大约阅读时间需要 6 分钟。
网上充斥着 类似(下面) 的无脑回答
@ControllerAdvice(basePackages = "com.controller")public class Jsonp extends AbstractJsonpResponseBodyAdvice { public Jsonp() { //构造函数 super("callback","jsonp"); }}
然而 AbstractJsonpResponseBodyAdvice
这个类 spring 官方找废弃了。
(可能考虑到 jsonp 这个技术 有点 low ,迟早要淘汰把)
但是,奈何不了我们可爱的前端喜欢用啊。
功能还是要实现的。(下面)
就是用 RequestContextHolder
这个 ThreadLocal
获得当前线程的 request
判断一下,有需要就做个 字符串拼接
package cn.test.config;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;import org.springframework.util.StringUtils;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import com.fasterxml.jackson.core.JsonGenerator;@Configurationpublic class JsonpConfig { @Bean public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() { return new MappingJackson2HttpMessageConverter() { // 做jsonp的支持的标识,在请求参数中加该参数 private final static String CALLBACK = "callback"; // 获取callback参数 private String parseCallbackParam() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder .currentRequestAttributes()).getRequest(); return request.getParameter(CALLBACK); } @Override protected void writePrefix(JsonGenerator generator, Object object) throws IOException { String callback = parseCallbackParam(); if (!StringUtils.isEmpty(callback)) generator.writeRaw(callback + "("); } @Override protected void writeSuffix(JsonGenerator generator, Object object) throws IOException { String callback = parseCallbackParam(); if (!StringUtils.isEmpty(callback)) generator.writeRaw(")"); } }; }}
转载地址:https://lawsssscat.blog.csdn.net/article/details/104759963 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月19日 12时42分34秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
NLP 之 Perplexity困惑度
2019-04-30
tensor/矩阵/图片等更换通道,调整size
2019-04-30
本地和colab 中 改变tensorflow的版本
2019-04-30
Camera-ready ddl
2019-04-30
CUB-200鸟类数据集
2019-04-30
Python反射机制
2019-04-30
YAPF —— Python代码格式化工具
2019-04-30
UGC 用户产生内容
2019-04-30
ranger
2019-04-30
slurm
2019-04-30
xfce4
2019-04-30
xrdp
2019-04-30
Raft算法
2019-04-30
Python计算文本BLEU分数
2019-04-30
swap内存(linux)
2019-04-30
人脸au
2019-04-30
torch.distributed 分布式
2019-04-30
PyPy
2019-04-30
MATLAB与CUDA
2019-04-30
Linux png转jpg (convert命令)
2019-04-30