学习过程中编写的源码,欢迎大家批评、指正、star!!
https://github.com/xuhaidongGitHub/springboot-xhd
-
异常:This application has no explicit mapping for /error, so you are seeing this as a fallback。
产生原因:app启动类未放在包目录的最外层,由于springboot中启动类只会扫描启动类所在包目录的所有子包,所以会导致加载不到这个访问路径。
解决方法:将启动类放置在项目包的最外层。
-
SpringBoot使用FastJson的Json解析框架出现中文乱码现象。
产生原因:由于FastJson使用时没有设置返回的编码格式会导致中文出现乱码。
解决方法:
1.通过设置Converter的MediaType的方式解决
//定义MediaType集合 List<MediaType> fastMediaTypes = new ArrayList<>(); //设置MediaType为UTF-8 fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); //将编码信息添加到Converter中 fastConverter.setSupportedMediaTypes(fastMediaTypes);
2.通过给@RequestMapping注解添加produces的方式解决
@RequestMapping(value = "/getUser" ,produces = "application/json; charset=utf-8")
注意事项:springboot配置fastjson为默认的json解析框架有两种方式,一种是启动类继承WebMvcConfigurerAdapter类并重写configureMessageConverters方法,另一种是通过bean注入的方式配置一个HttpMessageConverters对象,并注入到spring容器中。建议使用第二种方式配置fastjson,原因是第一种方式的所继承的WebMvcConfigurerAdapter类已被废弃,且有一定的BUG存在,例如配置MediaType后@JSONField注解失效。