zoukankan      html  css  js  c++  java
  • spring mvc为何多注入了个SimpleUrlHandlerMapping?

    最近在调试项目时,debug DispatcherServlet时,发现handlerMappings属性包含了RequestMappingHandlerMapping、SimpleUrlHandlerMapping、BeanNameUrlHandlerMapping。

    可是我明明只声明了

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>

    真是百思不得解啊,因为是旧项目基础改造的,以为是别的地方有隐秘用法,找了半天,没找到,今天下班时,突然想到我注册了

    <mvc:resources location="" mapping=""/>

    翻看ResourcesBeanDefinitionParser,查到了关键代码:

    1.

    RootBeanDefinition handlerMappingDef = new RootBeanDefinition(SimpleUrlHandlerMapping.class);
         handlerMappingDef.setSource(source);
         handlerMappingDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
         handlerMappingDef.getPropertyValues().add("urlMap", urlMap);

    2.

    // Ensure BeanNameUrlHandlerMapping (SPR-8289) and default HandlerAdapters are not "turned off"
         // Register HttpRequestHandlerAdapter
         MvcNamespaceUtils.registerDefaultComponents(parserContext, source);

    指向

    public static void registerDefaultComponents(ParserContext parserContext, Object source) {
           registerBeanNameUrlHandlerMapping(parserContext, source);
            registerHttpRequestHandlerAdapter(parserContext, source);
            registerSimpleControllerHandlerAdapter(parserContext, source);
        }

    才知道原因了。呵呵。

  • 相关阅读:
    Gson字符串编码,字符串转换成图片保存,二进制转换成图片保存
    时间工具类DateUtil
    RSA 签名、验证、加密、解密帮助类
    富友数据加密解密
    Base64(2)
    MD5(2)
    实体对象操作工具
    HttpClient工具类
    MD5
    身份证算法实现
  • 原文地址:https://www.cnblogs.com/beiyeren/p/3488170.html
Copyright © 2011-2022 走看看