zoukankan      html  css  js  c++  java
  • 关于 <mvc:argument-resolvers> 的一次使用记录

        使用场景: 项目里面在做一个请求时候发现,不同的请求,有些请求会跳转到 spring mvc的自定义方法中,有些却不进去。自定义的方法:

       

    <mvc:annotation-driven >
            <mvc:argument-resolvers>
                <bean class="com.zhuanche.car.web.resolver.AdminBaseFormArgumentResolver">
                    <property name="adminSessionUserManager" ref="adminSessionUserManager"/>
                </bean>
            </mvc:argument-resolvers>
        </mvc:annotation-driven>
    AdminBaseFormArgumentResolver 方法:
    public class AdminBaseFormArgumentResolver extends BaseFormArgumentResolver {
    
        private static final Logger logger = LoggerFactory.getLogger(AdminBaseFormArgumentResolver.class);
    
        AdminSessionUserManager adminSessionUserManager;
        @Override
        protected SessionUser getSessionUser(NativeWebRequest webRequest) {
            if(SecurityUtils.getSubject().isAuthenticated()){
                String username = (String) SecurityUtils.getSubject().getPrincipal();
                logger.debug("username = {}", username);
                return adminSessionUserManager.getSessionUser(username);
            }
            throw new UnauthenticatedException("当前用户未登录");
        }
    
        @Override
        public void afterPropertiesSet() throws Exception {
            Assert.notNull(this.adminSessionUserManager, "property adminSessionUserManager is required.");
        }
    
        public void setAdminSessionUserManager(AdminSessionUserManager adminSessionUserManager) {
            this.adminSessionUserManager = adminSessionUserManager;
        }
    }

    上网搜了后就,最终明白:这个方法是和 传的参数有关系,只要带有某一些参数或者特定的注解,就会进入自定义的方法。如果不带有,则不会进入。但是原理 真心不太明白,而且也不知道 在哪里控制的。下面的文章有类似的用法:

     https://blog.csdn.net/lqzkcx3/article/details/78794636

  • 相关阅读:
    呕心沥血写的python猜数字
    判断Python输入是否为数字
    python深拷贝和浅拷贝
    python 字符串
    python字符串操作
    如何在CentOS 7.1中安装VMware Workstation
    Ubuntu强制卸载VMware-player
    linux下安装VMware出错:Gtk-Message: Failed to load module "canberra-gtk-module"解决方法
    day63 Pyhton 框架Django 06
    day62 Pyhton 框架Django 05
  • 原文地址:https://www.cnblogs.com/thinkingandworkinghard/p/9779574.html
Copyright © 2011-2022 走看看