记 SpringBoot1.* 转 Springoot2.0 遇到的问题
1.拦截器问题
到2.0之后在配置文件中写 static-path-pattern: /static/** 已经不起作用(2.0需要在方法中配置)
SpringBoot1.*写法
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
private final UserMethodArgumentResolver userMethodArgumentResolver;
@Autowired
public JwtInterceptor(UserMethodArgumentResolver userMethodArgumentResolver) {
this.userMethodArgumentResolver = userMethodArgumentResolver;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getWebmvcConfig())
.addPathPatterns("/**")//拦截
.excludePathPatterns("/",//排除拦截
"/login/**");
super.addInterceptors(registry);
}
@Bean
public WebmvcConfig getWebmvcConfig() {
return new WebmvcConfig();
}
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(userMethodArgumentResolver);
}
}
SpringBoot2.0写法
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
private static final Logger LOGGER = LoggerFactory.getLogger(WebMvcConfig.class); @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {//设置资源路径
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
super.addResourceHandlers(registry);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new JwtInterceptor())
.addPathPatterns("/**")//拦截
.excludePathPatterns("/",//排除拦截"/login/**","/static/**");
} }
2.编码问题
页面访问不会出现乱码现象,但是Ajax请求返回的中文会出现乱码,经过排查是由于 ResponseBody 引用 StringHttpMessageConverter 这个类,而此类默认编码为ISO_8859_1,我们需要更改为UTF-8。
此代码段放到继承 WebMvcConfigurationSupportl 类的 WebMvcConfig 类下
/**
* 设置默认编码为UTF-8
*/
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
final StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
converter.setWriteAcceptCharset(false);
return converter;
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(responseBodyConverter());
addDefaultHttpMessageConverters(converters);
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}
默认的 StringHttpMessageConverter 会加上 Accept-Charset 响应头并带上所有的字符集,需要设置一下
converter.setWriteAcceptCharset(false);
记 SpringBoot1.* 转 Springoot2.0 遇到的问题的更多相关文章
- 记一次tomcat7.0版本启动项目失败问题
测试项目在tomcat7中启动失败,报错如下: @794314bc3 Error during job execution (jobs.Bootstrap) Oops: VerifyError ~ p ...
- 定宽块状元素居中 1记(text-align/margin:0 auto)
对于text-align:center的用法只是针对文本相对于父元素的居中,例如: #jz2{ width:300px; margin: 10px auto; border:2px solid red ...
- GeoServer中使用样式化图层描述符(sld)给WMS加注记
现有一个shp格式的道路注记文件,用点来表示注记的位置,属性表中保存每个点对应的字,在QGIS中打开如下图所示 它的属性表如下 现需要把道路数据和它的注记发布为WMS服务,通过GeoServer直接发 ...
- HNOI2019 爆零记
HNOI2019爆零记 day \(-inf\) ~ day \(0\) 开学一周之后才停的课,停课之后就开始每天被包菜.我三月份几乎没有更博,就是因为每天都被虐的自闭了. day \(0\) 本来是 ...
- noip2017普及 兔纸游玩记
初中的最后一场比赛...就这样结束了吧...QAQ时间...真够快的qwq 应该是初中的最后一篇游记了吧,尽量写多点... 这是一篇,初三 老年菜兔的 noip2017 普及游玩记吧! DAY 0 ...
- 记数排序 & 桶排序 & 基数排序
为什么要写这样滴一篇博客捏...因为一个新初一问了一道水题,结果就莫名其妙引起了战斗. 然后突然发现之前理解的桶排序并不是真正的桶排序,所以写一篇来区别下这三个十分相似的排序辣. 老年菜兔的觉醒!!! ...
- HNOI2018 摸鱼记
HNOI2018 摸鱼记 今天我又来记流水账啦 Day 0 颓废的一天. 我,球爷和杜教在颓膜膜.io ych看起来在搓碧蓝 鬼知道哥达鸭干了什么 学习氛围只局限在机房的一角 后来全体Oier开会,5 ...
- [Erlang 0110] Erlang Abstract Format , Part 1
Erlang Abstract Format并不难懂,只是枯燥一点罢了,如果把Abstract Format的文档翻译出来,其实就是Erlang教科书中语法入门的部分. Erlang Abstract ...
- Oracle数据库基础知识
oracle数据库plsql developer 目录(?)[-] 一 SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...
随机推荐
- P1478 陶陶摘苹果(升级版)
题目描述 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NOIp2005普及组第一题不同的是:陶陶之前搬凳子,力 ...
- Heart Beat
实现关键: 1.纯css实现心形图(如果使用图片则无需) html代码: <!DOCTYPE html> <html> <head> <meta charse ...
- quazip非静态成员。。错误
转载请注明出处:http://www.cnblogs.com/dachen408/p/7147155.html 问题:quazip非静态成员..错误 解决方案:quazip_global.h 第42 ...
- pdf 使用模板下载
//根据模板下载模板 /** * * 政策5-8条的创建的pdf的模板 */public String createPdfCashTemplate(PdfCashParam pdfCashParam) ...
- spring cloud 概念
微服务构架需要使用场景: 1.可以将一个系统拆分成几个系统. 2.每个子系统可以部署多个应用,多个应用之间可以使用负载均衡. 3.需要一个服务注册中心,所有的服务都在一个注册中心注册,负载均衡也是通过 ...
- vue中的main.js打开直接报错问题解决
安装好后也是报这样的错,是因为WebStorm默认使用的是ES5的语法,改成ES6就可以了. 解决方案:
- IDEA下Eclipse快捷键
- delphi GDI+ [1]
摘抄自:万一的博客 安装头文件:http://www.cnblogs.com/del/archive/2008/06/06/1215319.html 目录 基本使用方法(绘制直线) 绘制一组直线 绘制 ...
- linux arp-显示和修改IP到MAC转换表
博主推荐:更多网络测试相关命令关注 网络测试 收藏linux命令大全 arp命令用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目.删除指定的条目或者添加静态的ip地址与MAC地址对应关 ...
- ruby 第五次作业 part 1(分类、排序)
movies_controller.rb class MoviesController < ApplicationController def movie_params params.requi ...