SpringMVC配置javaConfig及StringHttpMessageConverter示例

 更新时间:2023年07月20日 09:18:09   作者:这个骑士不炸街  
这篇文章主要介绍了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的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Java如何实现百万数据excel导出功能

    详解Java如何实现百万数据excel导出功能

    这篇文章主要为大家详细介绍了Java如何实现百万数据excel导出功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-02-02
  • Spring中@Async注解实现异步调详解

    Spring中@Async注解实现异步调详解

    在本篇文章里小编给大家分享的是关于Spring中@Async注解实现异步调详解内容,需要的朋友们可以学习下。
    2020-04-04
  • POI对Excel自定义日期格式的读取(实例代码)

    POI对Excel自定义日期格式的读取(实例代码)

    下面小编就为大家带来一篇POI对Excel自定义日期格式的读取(实例代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • struts2过滤器和拦截器的区别分析

    struts2过滤器和拦截器的区别分析

    这篇文章主要介绍了struts2过滤器和拦截器的区别,简单分析了struts2框架中过滤器和拦截器的概念与相关使用区别,需要的朋友可以参考下
    2016-04-04
  • 详解Java的回调机制

    详解Java的回调机制

    最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,本文介绍了Java的回调机制,有兴趣的同学可以了解一下
    2016-10-10
  • Java生成Jar包方法步骤

    Java生成Jar包方法步骤

    在Java开发中,打包成JAR文件是一种常见的方式,本文主要介绍了Java生成Jar包方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 空指针HttpSession异常之SpringBoot集成WebSocket的方法

    空指针HttpSession异常之SpringBoot集成WebSocket的方法

    文章介绍了在Spring Boot中集成WebSocket时遇到的HttpSession为空的问题,并探讨了三种解决方法,方法一涉及域名配置,方法二通过监听创建Session,而方法三是从request中获取session并存入数据,感兴趣的朋友一起看看吧
    2025-01-01
  • 以用户名注册为例分析三种Action获取数据的方式

    以用户名注册为例分析三种Action获取数据的方式

    这篇文章主要介绍了以用户名注册为例分析三种Action获取数据的方式的相关资料,需要的朋友可以参考下
    2016-03-03
  • SpringBoot与SpringMVC中参数传递的原理解析

    SpringBoot与SpringMVC中参数传递的原理解析

    这篇文章主要介绍了SpringBoot与SpringMVC中参数传递的原理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • @RequestAttribute和@RequestParam注解的区别及说明

    @RequestAttribute和@RequestParam注解的区别及说明

    这篇文章主要介绍了@RequestAttribute和@RequestParam注解的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论