资讯专栏INFORMATION COLUMN

SpringMVC配置javaConfig及MessageConverter

aervon / 1644人阅读

摘要:配置及配置的转换器,在中配置如下在中的配置如下在后可以直接使用,在环境中,容器会在类路径中查找实现接口的类,如果能发现的话,就会用它来配置容器。提供了这个接口的实现,名为,这个类反过来又会查找实现的类并将配置的任务交给它们来完成。

SpringMVC配置javaConfig及StringHttpMessageConverter 配置Spring的转换器,在xml中配置如下
  
      
          
              
                  
                    text/plain;charset=UTF-8  
                    text/html;charset=UTF-8  
                  
              
        
      
在javaConfig中的配置如下
web.xml 3.0后可以直接使用,在Servlet 3.0环境
中, 容器会在类路径中查找实现
javax.servlet.ServletContainerInitializer接口的类,
如果能发现的话, 就会用它来配置Servlet容器。Spring提供了这个接口的实现, 名
SpringServletContainerInitializer, 这个类反过来又会
查找实现WebApplicationInitializer的类并将配置的任务交给
它们来完成。我们的SpittrWebAppInitializer扩展了
AbstractAnnotationConfig DispatcherServletInitializer(同时也就实现了
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> 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 list = buildDefaultMediaTypes();
        converter.setSupportedMediaTypes(list);
        return converter;
    }

    // 设置响应头信息
    private static List buildDefaultMediaTypes() {
        List list = new ArrayList<>();
        list.add(MediaType.TEXT_HTML); // 这个必须设置在第一位
        list.add(MediaType.APPLICATION_JSON_UTF8);
        return list;
    }
}

说明:

@EnableWebMvc就想当于

需要重写WebMvcConfigurerAdapter中的configureMessageConverters方法,在该方法中会传递converters,通过converters去添加处理器converters.add(处理器转换方法)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76419.html

相关文章

  • SpringMVC HttpMessageConverter 匹配规则

    摘要:例如,服务端不支持这种,应该返回。而当使用或者其他等价方式进行配置时,会把添加在最前面,优先级最高。好了,到此就基本上说完了整个的匹配规则或者叫选择过程。自己能力不是最大,却大包大揽承担最大责任,处理不了还返回,是甩锅客户端的行为。 以下内容,如有问题,烦请指出,谢谢! SpringMVC启动时会自动配置一些HttpMessageConverter,接收到http请求时,从这些Con...

    Imfan 评论0 收藏0
  • redis 配置缓存(javaconfig

    摘要:配置以及缓存是一种数据库,一种数据库,一种数据库如何缓存将想要缓存的数据添加到数据库中基于内存亦可持久化的数据库,所以速度快配置启动缓存是默认生成主键的方式是缓存管理器是的一种模板,还有一种模板是手动使用做缓存思路 redis 配置以及缓存(javaconfig) redis 是一种数据库,一种数据库,一种数据库 如何缓存:将想要缓存的数据添加到 redis 数据库中 redis:基...

    terro 评论0 收藏0
  • 猫头鹰的深夜翻译:为什么要使用Spring Boot?

    摘要:初次使用的人往往会困惑,不知道该使用哪种方法。目前来说,团队推荐使用基于的方法来提供更高的灵活性。配置,从而在应用启动时执行脚本来初始化数据库。目前为止我们没有任何消息需要配置,所以只在文件夹中创建一个空的文件。将配置为,它包含的上下文。 前言 spring是一个用于创建web和企业应用的一个很流行的框架。和别的只关注于一点的框架不同,Spring框架通过投资并组合项目提供了大量的功能...

    Jaden 评论0 收藏0
  • 基于SpringMVC模式的配置

    摘要:目前支持个,分别是,,和注册和两个,及一系列缺省的需要中有相应的包的支持。相当于以下配置的效果。注意在版本中不支持在中再注册新的在版本中可以支持,写法如下注册或拦截器来拦截请求。例如拦截器实现代码如下将的替换当前的缺省的。 showImg(https://segmentfault.com/img/bVbsvgl?w=640&h=427); Spring mvc 目前支持5个tag,分别...

    lookSomeone 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<