类说明:
abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer
用于定制springMvc
的一些配置,该抽象类继承了WebMvcConfigurer
接口的所有方法,但是都是一些空实现,是springMvc
为定制配置提供的入口。
方法说明
-
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
添加解析器以支持自定义控制器方法参数类型。
这不会覆盖用于解析处理程序方法参数的内置支持。
要自定义内置的参数解析支持, 同样可以通过RequestMappingHandlerAdapter
直接配置RequestMappingHandlerAdapter
。
使用示例: 添加一个自定义的参数解析对象
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(myHandlerMethodArgumentResolver);
}
-
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)
添加处理程序来支持自定义控制器方法返回值类型。使用此选项不会覆盖处理返回值的内置支持。 要自定义处理返回值的内置支持,请直接配置RequestMappingHandlerAdapter。空实现。使用示例: springMvc 将返回值解析对象放到beanFactory中,实现返回值解析对象的注入
<pre class="hljs java">` <span class="hljs-meta">@Override</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">addArgumentResolvers</span><span class="hljs-params">(List<HandlerMethodArgumentResolver> argumentResolvers)</span> </span>{argumentResolvers.add(sortResolver()); argumentResolvers.add(pageableResolver()); ProxyingHandlerMethodArgumentResolver resolver = <span class="hljs-keyword">new</span> ProxyingHandlerMethodArgumentResolver( conversionService.getObject()); resolver.setBeanFactory(context); resolver.setBeanClassLoader(context.getClassLoader()); argumentResolvers.add(resolver); }
-
public void configureMessageConverters(List<HttpMessageConverter<?>> converters)
配置HttpMessageConverter用于读取或写入请求或响应的正文。 如果没有加入转换器,则会注册默认的转换器列表。【注意】新添加一个converter),会关闭原有的converter。要增加一个新的 converter 而不影响原有的,可以使用WebMvcConfigurer.extendMessageConverters(java.util.List)方法。
使用示例:
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(sortResolver());
argumentResolvers.add(pageableResolver());
ProxyingHandlerMethodArgumentResolver resolver = new ProxyingHandlerMethodArgumentResolver(
conversionService.getObject());
resolver.setBeanFactory(context);
resolver.setBeanClassLoader(context.getClassLoader());
argumentResolvers.add(resolver);
}
网友评论