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)境中, 容器會(huì)在類路徑中查找實(shí)現(xiàn)javax.servlet.ServletContainerInitializer接口的類,如果能發(fā)現(xiàn)的話, 就會(huì)用它來(lái)配置Servlet容器。
Spring提供了這個(gè)接口的實(shí)現(xiàn), 名為SpringServletContainerInitializer, 這個(gè)類反過(guò)來(lái)又會(huì)查找實(shí)現(xiàn)WebApplicationInitializer的類并將配置的任務(wù)交給它們來(lái)完成。
我們的SpittrWebAppInitializer擴(kuò)展了AbstractAnnotationConfigDispatcherServletInitializer(同時(shí)也就實(shí)現(xiàn)了WebApplicationInitializer) , 因此當(dāng)部署到Servlet 3.0容器中的時(shí)候, 容器會(huì)自動(dòng)發(fā)現(xiàn)它, 并用它來(lái)配置Servlet上下文。
public class SplittrWebAppInitianlizer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
// 如果只是簡(jiǎn)單的一個(gè)web程序,可忽略
return new Class<?>[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
// 配置WebConfig,主要是初始化bean等,相當(dāng)于加載applicationContext.xml文件
return new Class<?>[] { WebConfig.class };
}
@Override
protected String[] getServletMappings() {
// 處理請(qǐng)求的路徑
return new String[] { "/" };
}
}WebConfig.java
@Configuration
@EnableWebMvc // 啟用SpringMVC
@ComponentScan("com.spring02") // 啟動(dòng)組件掃描
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();
}
// 設(shè)置MessageConverter
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// 添加一個(gè)String處理起
converters.add(stringHttpMessageConverter());
}
// 設(shè)置默認(rèn)編碼為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;
}
// 設(shè)置響應(yīng)頭信息
private static List<MediaType> buildDefaultMediaTypes() {
List<MediaType> list = new ArrayList<>();
list.add(MediaType.TEXT_HTML); // 這個(gè)必須設(shè)置在第一位
list.add(MediaType.APPLICATION_JSON_UTF8);
return list;
}
}說(shuō)明
- @EnableWebMvc就想當(dāng)于
<mvc:annotation-driven /> - 需要重寫
WebMvcConfigurerAdapter中的configureMessageConverters方法,在該方法中會(huì)傳遞converters,通過(guò)converters去添加處理器converters.add(處理器轉(zhuǎn)換方法)。
以上就是SpringMVC配置javaConfig及StringHttpMessageConverter示例的詳細(xì)內(nèi)容,更多關(guān)于SpringMVC配置javaConfig StringHttpMessageConverter的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于使用Lambda表達(dá)式簡(jiǎn)化Comparator的使用問(wèn)題
這篇文章主要介紹了關(guān)于使用Lambda表達(dá)式簡(jiǎn)化Comparator的使用問(wèn)題,文中圖文講解了Comparator對(duì)象的方法,需要的朋友可以參考下2023-04-04
Java關(guān)于BeabUtils.copyproperties的用法
這篇文章主要介紹了Java關(guān)于BeabUtils.copyproperties的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
淺談Java中對(duì)類的主動(dòng)引用和被動(dòng)引用
這篇文章主要介紹了淺談Java中對(duì)類的主動(dòng)引用和被動(dòng)引用,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
intellij idea如何將web項(xiàng)目打成war包的實(shí)現(xiàn)
這篇文章主要介紹了intellij idea如何將web項(xiàng)目打成war包的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Jmeter結(jié)構(gòu)體系及運(yùn)行原理順序解析
這篇文章主要介紹了Jmeter結(jié)構(gòu)體系及運(yùn)行原理順序解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
實(shí)例講解String Date Calendar之間的轉(zhuǎn)換
下面小編就為大家?guī)?lái)一篇實(shí)例講解String Date Calendar之間的轉(zhuǎn)換。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
Springboot整合JwtHelper實(shí)現(xiàn)非對(duì)稱加密
本文主要介紹了Springboot整合JwtHelper實(shí)現(xiàn)非對(duì)稱加密,主要介紹兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
IntelliJ IDEA(2019)安裝破解及HelloWorld案例(圖文)
這篇文章主要介紹了IntelliJ IDEA(2019)安裝破解及HelloWorld案例(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10

