SpringMVC配置javaConfig及StringHttpMessageConverter示例
作者:这个骑士不炸街
这篇文章主要介绍了SpringMVC配置javaConfig及StringHttpMessageConverter实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
SpringMVC配置javaConfig及StringHttpMessageConverter
配置Spring的转换器
在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环境中, 容器会在类路径中查找实现javax.servlet.ServletContainerInitializer
接口的类,如果能发现的话, 就会用它来配置Servlet
容器。
Spring
提供了这个接口的实现, 名为SpringServletContainerInitializer
, 这个类反过来又会查找实现WebApplicationInitializer
的类并将配置的任务交给它们来完成。
我们的SpittrWebAppInitializer
扩展了AbstractAnnotationConfigDispatcherServletInitializer
(同时也就实现了WebApplicationInitializer
) , 因此当部署到Servlet
3.0容器中的时候, 容器会自动发现它, 并用它来配置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; } // 配置处理静态资源 @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(处理器转换方法)
。
以上就是SpringMVC配置javaConfig及StringHttpMessageConverter示例的详细内容,更多关于SpringMVC配置javaConfig StringHttpMessageConverter的资料请关注脚本之家其它相关文章!