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的资料请关注脚本之家其它相关文章!

相关文章

  • 关于使用Lambda表达式简化Comparator的使用问题

    关于使用Lambda表达式简化Comparator的使用问题

    这篇文章主要介绍了关于使用Lambda表达式简化Comparator的使用问题,文中图文讲解了Comparator对象的方法,需要的朋友可以参考下
    2023-04-04
  • Java关于BeabUtils.copyproperties的用法

    Java关于BeabUtils.copyproperties的用法

    这篇文章主要介绍了Java关于BeabUtils.copyproperties的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 浅谈Java中对类的主动引用和被动引用

    浅谈Java中对类的主动引用和被动引用

    这篇文章主要介绍了浅谈Java中对类的主动引用和被动引用,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • intellij idea如何将web项目打成war包的实现

    intellij idea如何将web项目打成war包的实现

    这篇文章主要介绍了intellij idea如何将web项目打成war包的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Jmeter结构体系及运行原理顺序解析

    Jmeter结构体系及运行原理顺序解析

    这篇文章主要介绍了Jmeter结构体系及运行原理顺序解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 实例讲解String Date Calendar之间的转换

    实例讲解String Date Calendar之间的转换

    下面小编就为大家带来一篇实例讲解String Date Calendar之间的转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Java中Spring获取bean方法小结

    Java中Spring获取bean方法小结

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • Springboot整合JwtHelper实现非对称加密

    Springboot整合JwtHelper实现非对称加密

    本文主要介绍了Springboot整合JwtHelper实现非对称加密,主要介绍两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • spring boot如何使用POI读取Excel文件

    spring boot如何使用POI读取Excel文件

    本文主要介绍使用POI进行Excel文件的相关操作,涉及读取文件,获取sheet表格,对单元格内容进行读写操作,以及合并单元格的操作
    2021-08-08
  • IntelliJ IDEA(2019)安装破解及HelloWorld案例(图文)

    IntelliJ IDEA(2019)安装破解及HelloWorld案例(图文)

    这篇文章主要介绍了IntelliJ IDEA(2019)安装破解及HelloWorld案例(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论