• SimpleUrlHandlerMapping类的功能简介说明


    转自:

    SimpleUrlHandlerMapping类的功能简介说明

    下文笔者将讲述SimpleUrlHandlerMapping类的功能简介说明,如下所示:

    SimpleUrlHandlerMapping的功能:
       使用一组URL Pattern到处理器的映射而实现的
       它使用配置的映射中的URL Pattern匹配请求中的URL
       当匹配成功,则使用匹配URL Pattern映射的Bean作为处理器返回
    

    SimpleUrlHandlerMapping源码

    public class SimpleUrlHandlerMapping extends AbstractUrlHandlerMapping {  
        private final Map urlMap = new HashMap();  
      
        // 通过属性配置URL到Bean名的映射  
        public void setMappings(Properties mappings) {  
            CollectionUtils.mergePropertiesIntoMap(mappings, this.urlMap);  
        }  
      
        // 配置URL到Bean的映射  
        public void setUrlMap(Map urlMap) {  
            this.urlMap.putAll(urlMap);  
        }  
      
        public Map getUrlMap() {  
            return this.urlMap;  
        }  
      
        @Override  
        public void initApplicationContext() throws BeansException {  
            super.initApplicationContext();  
            // 初始化的时候注册处理器  
            registerHandlers(this.urlMap);  
        }  
      
        protected void registerHandlers(Map urlMap) throws BeansException {  
            // 如果配置的处理器映射为空,则警告  
            if (urlMap.isEmpty()) {  
                logger.warn("Neither 'urlMap' nor 'mappings' set on SimpleUrlHandlerMapping");  
            }  
            else {  
                // 对于没一个配置的URL到处理器的映射,如果URL不是以斜线(/)开头,则追加斜线开头,则注册处理器  
                for (Map.Entry entry : urlMap.entrySet()) {  
                    String url = entry.getKey();  
                    Object handler = entry.getValue();  
                    // Prepend with slash if not already present.  
                    if (!url.startsWith("/")) {  
                        url = "/" + url;  
                    }  
                    // Remove whitespace from handler bean name.  
                    if (handler instanceof String) {  
                        handler = ((String) handler).trim();  
                    }  
                    registerHandler(url, handler);  
                }  
            }  
        }  
    }
    

    SimpleUrlHandlerMapping如何声明呢?

    声明方式1:

    prop key方式,key是URL模式,属性值是Handler的ID或者名字。

    
        
           
            
               welcomeController
               welcomeController
               helloGuestController
             
           
        
        
        
            
        
    
    

    声明方式2:等号

    
        
           
            
               /welcome.htm=welcomeController
               /*/welcome.htm=welcomeController
               /helloGuest.htm=helloGuestController
            
           
        
        
        
            
        
    
  • 相关阅读:
    速卖通商品详情API接口(标题|主图|SKU|价格|商品描述)
    三. Docker的安装Mysql并挂载
    Codeforces 1750B. Maximum Substring
    建议收藏!深入理解Java虚拟机:JVM垃圾回收算法+垃圾收集器
    ES6--》对象扩展方法
    怎么能让页面加载完在执行js
    【实战】手把手教你从 0 到 1 搭建一套 RocketMQ 集群
    【Linux运维系列】vim操作
    字符串与字符编码 - GO语言从入门到实战
    matplotlib中关于极坐标轴的控制
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127815795