java mvc bean 配置_SpringMVC配置javaConfig及MessageConverter

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(处理器转换方法)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值