最近新建了一个项目 是 spring boot2.1.1 + mybatis +postgre 的技术栈。
然后神奇的来了。建好后 怎么都访不到 controller 控制器也没报错 。然后百度了下,发现 大多数说的 要么就是 springboot 启动器要放在最外层,要么就是加上@ComponentScan注解,要么就是 什么@RestController注解,然后我发现都没用,没办法 自己去官网 各种查看,最后找到了一个办法
新建 WebConfig 类,然后在类上 加上
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
}
OK 问题解决。
然后发现 返回给前端的 response body 是 中文乱码 显示在 页面是 三个问号。
然后又百度 发现 根本没有解决。全是说在 yml 中加入这些。
spring: # http: # # Chararcter Encoding filter settings # encoding: # charset: UTF-8 # enabled: true # force: true
然后发现没用,没办法 我只能在 上面新建的webconfig 中加入自己的 解析器
@Bean
public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter();
// @ResponseBody注解靠HttpMessageConverter解析
List<HttpMessageConverter<?>> converters = adapter.getMessageConverters();
Iterator<HttpMessageConverter<?>> iterator = converters.iterator();
while (iterator.hasNext()) {
HttpMessageConverter<?> converter = iterator.next();
if (converter instanceof StringHttpMessageConverter) { // 移除默认编码为ISO8859-1的字符串解析器
iterator.remove();
}
}
converters.add(new StringHttpMessageConverter(Charset.forName("UTF-8"))); // 字符串才使用UTF-8解析
converters.add(new MappingJackson2HttpMessageConverter()); // 解析json
adapter.setMessageConverters(converters);
return adapter;
}
OK 问题解决 。
PS:看网上说添加了@EnableWebMvc注解貌似spring boot 就不会 帮你自动注入。