为了账号安全,请及时绑定邮箱和手机立即绑定

解析 WebMvcConfigurerAdapter

标签:
深度学习

类说明:

abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer
用于定制 springMvc 的一些配置,该抽象类继承了 WebMvcConfigurer 接口的所有方法,但是都是一些空实现,是 springMvc 为定制配置提供的入口。

方法说明

  • public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
    添加解析器以支持自定义控制器方法参数类型。
    这不会覆盖用于解析处理程序方法参数的内置支持。
    要自定义内置的参数解析支持, 同样可以通过 RequestMappingHandlerAdapter 直接配置 RequestMappingHandlerAdapter

使用示例: 添加一个自定义的参数解析对象

@Overridepublic 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);
}



作者:芥末无疆sss
链接:https://www.jianshu.com/p/dfd5f8a772a2
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消