最近新建了一個項目 是 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 就不會 幫你自動注入。