SpringMVC配置javaConfig及StringHttpMessageConverter示例
SpringMVC配置javaConfig及StringHttpMessageConverter
配置Spring的轉(zhuǎn)換器
在xml中配置如下
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>在javaConfig中的配置如下
在web.xml 3.0后可以直接使用,在Servlet 3.0環(huán)境中, 容器會在類路徑中查找實現(xiàn)javax.servlet.ServletContainerInitializer接口的類,如果能發(fā)現(xiàn)的話, 就會用它來配置Servlet容器。
Spring提供了這個接口的實現(xiàn), 名為SpringServletContainerInitializer, 這個類反過來又會查找實現(xiàn)WebApplicationInitializer的類并將配置的任務交給它們來完成。
我們的SpittrWebAppInitializer擴展了AbstractAnnotationConfigDispatcherServletInitializer(同時也就實現(xiàn)了WebApplicationInitializer) , 因此當部署到Servlet 3.0容器中的時候, 容器會自動發(fā)現(xiàn)它, 并用它來配置Servlet上下文。
public class SplittrWebAppInitianlizer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
// 如果只是簡單的一個web程序,可忽略
return new Class<?>[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
// 配置WebConfig,主要是初始化bean等,相當于加載applicationContext.xml文件
return new Class<?>[] { WebConfig.class };
}
@Override
protected String[] getServletMappings() {
// 處理請求的路徑
return new String[] { "/" };
}
}WebConfig.java
@Configuration
@EnableWebMvc // 啟用SpringMVC
@ComponentScan("com.spring02") // 啟動組件掃描
public class WebConfig extends WebMvcConfigurerAdapter {
// 配置視圖解析器
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
// 配置處理靜態(tài)資源
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
// 設置MessageConverter
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// 添加一個String處理起
converters.add(stringHttpMessageConverter());
}
// 設置默認編碼為UTF-8
private Charset default_charset = Charset.forName("UTF-8");
@Bean
public StringHttpMessageConverter stringHttpMessageConverter() {
StringHttpMessageConverter converter = new StringHttpMessageConverter(default_charset);
List<MediaType> list = buildDefaultMediaTypes();
converter.setSupportedMediaTypes(list);
return converter;
}
// 設置響應頭信息
private static List<MediaType> buildDefaultMediaTypes() {
List<MediaType> list = new ArrayList<>();
list.add(MediaType.TEXT_HTML); // 這個必須設置在第一位
list.add(MediaType.APPLICATION_JSON_UTF8);
return list;
}
}說明
- @EnableWebMvc就想當于
<mvc:annotation-driven /> - 需要重寫
WebMvcConfigurerAdapter中的configureMessageConverters方法,在該方法中會傳遞converters,通過converters去添加處理器converters.add(處理器轉(zhuǎn)換方法)。
以上就是SpringMVC配置javaConfig及StringHttpMessageConverter示例的詳細內(nèi)容,更多關(guān)于SpringMVC配置javaConfig StringHttpMessageConverter的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解Java如何實現(xiàn)百萬數(shù)據(jù)excel導出功能
這篇文章主要為大家詳細介紹了Java如何實現(xiàn)百萬數(shù)據(jù)excel導出功能,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下2023-02-02
Spring中@Async注解實現(xiàn)異步調(diào)詳解
在本篇文章里小編給大家分享的是關(guān)于Spring中@Async注解實現(xiàn)異步調(diào)詳解內(nèi)容,需要的朋友們可以學習下。2020-04-04
空指針HttpSession異常之SpringBoot集成WebSocket的方法
文章介紹了在Spring?Boot中集成WebSocket時遇到的HttpSession為空的問題,并探討了三種解決方法,方法一涉及域名配置,方法二通過監(jiān)聽創(chuàng)建Session,而方法三是從request中獲取session并存入數(shù)據(jù),感興趣的朋友一起看看吧2025-01-01
以用戶名注冊為例分析三種Action獲取數(shù)據(jù)的方式
這篇文章主要介紹了以用戶名注冊為例分析三種Action獲取數(shù)據(jù)的方式的相關(guān)資料,需要的朋友可以參考下2016-03-03
SpringBoot與SpringMVC中參數(shù)傳遞的原理解析
這篇文章主要介紹了SpringBoot與SpringMVC中參數(shù)傳遞的原理,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-07-07
@RequestAttribute和@RequestParam注解的區(qū)別及說明
這篇文章主要介紹了@RequestAttribute和@RequestParam注解的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05

