• 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
            
           
        
        
        
            
        
    
  • 相关阅读:
    vue 中为什么需要虚拟DOM、VDOM 是如何生成的、VDOM 如何做 diff 的?
    JetBrains PyCharm Pro 2024 for Mac:智能Python开发的首选工具
    QT计时器QTime的使用举例
    一文彻底搞懂Mysql索引优化
    lazada API 获得商品评论列表
    Java多态调用成员的特点
    个人网站开发——全栈项目开发日记
    UDP网络通信反复发&收
    【2023春李宏毅机器学习】生成式学习的两种策略
    codeforces每日5题(均1700)-第六天
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127815795