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的资料请关注脚本之家其它相关文章!
相关文章
关于使用Lambda表达式简化Comparator的使用问题
这篇文章主要介绍了关于使用Lambda表达式简化Comparator的使用问题,文中图文讲解了Comparator对象的方法,需要的朋友可以参考下2023-04-04
Java关于BeabUtils.copyproperties的用法
这篇文章主要介绍了Java关于BeabUtils.copyproperties的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-08-08
intellij idea如何将web项目打成war包的实现
这篇文章主要介绍了intellij idea如何将web项目打成war包的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-07-07
IntelliJ IDEA(2019)安装破解及HelloWorld案例(图文)
这篇文章主要介绍了IntelliJ IDEA(2019)安装破解及HelloWorld案例(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-10-10


最新评论