使用场景: 项目里面在做一个请求时候发现,不同的请求,有些请求会跳转到 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

关于 <mvc:argument-resolvers> 的一次使用记录的更多相关文章

  1. 通过拦截器Interceptor实现Spring MVC中Controller接口访问信息的记录

    java web工程项目使用了Spring+Spring MVC+Hibernate的结构,在Controller中的方法都是用于处理前端的访问信息,Controller通过调用Service进行业务 ...

  2. II7.0 发布 MVC 4.0 三个小问题记录

    1,403.14-Forbidden Web 服务器被配置为不列出此目录的内容 根据提示更改:使用 IIS 管理器启用目录浏览. 打开 IIS 管理器. 在“功能”视图中,双击“目录浏览”. 在“目录 ...

  3. Spring Mvc返回html页面404错误解决记录--转载

    原文地址:http://53873039oycg.iteye.com/blog/2061992 以前使用Spring Mvc时候都是返回jsp页面或者ftl页面,昨天想返回html页面,spring- ...

  4. Asp.net MVC通过自定义特性实现Action日志记录

    一.自定义特性 /// <summary> /// 描述特性 /// </summary> [AttributeUsage(AttributeTargets.Method)] ...

  5. ASP.NET MVC学习之Log4Net配置(日志记录)

    Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...

  6. 【SpringBoot/MVC】从Oracle下载百万条记录的CSV

    工程下载地址:https://files.cnblogs.com/files/xiandedanteng/CsvDownloadOracle20191110-2.rar 画面: 核心代码: 控制器: ...

  7. Spring MVC 解读——@RequestMapping (2)(转)

    转自:http://my.oschina.net/HeliosFly/blog/214438 Spring MVC 解读——@RequestMapping 上一篇文章中我们了解了Spring如何处理@ ...

  8. Spring MVC之源码速读之RequestMappingHandlerAdapter

    spring-webmvc-4.3.19.RELEASE 下面来看DispatcherServlet中的执行: /** * Exposes the DispatcherServlet-specific ...

  9. Spring mvc解析

    方案时间 ,写代码时间 ,解决技术难点时间 , 自测时间,解决bug时间 , 联调时间 ,数据库优化,代码走查1个接口:2个小时 把那个字段再复原回来,不然兼容性不强还有一个刷数据的接口 public ...

  10. Spring Mvc 源代码之我见 二

    上一篇简单介绍了spring mvc 的一些基本内容 和DispatcherServlet 的doc.这一篇将会继续写我对Spring Mvc 源代码的理解.直接上代码: /** * This imp ...

随机推荐

  1. redis 数据持久化 aof方式

    redis持久化-Append-only file(缩写aof)的方式 本质:把用户执行的每个  ”写“ 指令(增加.修改.删除)都备份到文件中,还原数据的时候就是执行具体写指令. 打开redis的运 ...

  2. WPF中使用RenderTransformOrigin来控制动画的起点

    Render :渲染:Transform:动画:Origin:起点 RenderTransformOrigin:渲染动画的起点 取值为一个坐标的形式  取值范围: 0,0 到 1,1 0,0:表示左上 ...

  3. Kubernetes是什么

    目录 简介 主要概念: 总体结构 参考 Kubernetes概念 简介 kubernetes是一个Google开源的容器编排系统,用于自动部署,扩展和管理容器化应用程序. 随处运行:支持公有云,私有云 ...

  4. redis系统和通用函数

    construct函数: 用来创建一个redis客户端. redis = new Redis(); connect函数:连接到一个redis实例. 参数如下:   host:字符串类型 可以使一个HO ...

  5. Python 获取Kmeans聚类结果每一类的数据

    获取聚类结果中每一类的数据,该数据类型是DataFrame 思路:获取clf_KMeans的标签,我这里是聚三类,标签就是0,1,2 将Label转成Series类型,再筛选出指定标签的res0,我筛 ...

  6. IOS打开pdf文件

    下了一个打开pdf的第三方,就是打开之后不能缩放.今天上午修改了下试着可以让它能够缩放,在网上查了下,要实现代理方法,写了下,可调试的时候用两个手指不起作用,以为是写的有问题,最后问了下小伙伴.我也在 ...

  7. MySQL字符串函数:字符串截取

    MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr() ...

  8. Linux NTP时间服务器

    NTP 时间服务器 ntp也是一种协议 ntp软件(支持ntp协议)  CentOS6自带 CentOS7需要安装 chrony软件(支持ntp协议)   CentOS7自带 安装ntp CentOS ...

  9. Spring.Net---4、IoC/DI注入方式

    spring.net里实现了控制反转IOC(Inversion of control),也即依赖注入DI(Dependency Injection),以达到解耦的目的,实现模块的组件化.程序在调用sp ...

  10. C++类数组的实现

    请看下面的代码: //xy_3_1 2013/10/26 #include<stdio.h> #include<iostream.h> #include<string.h ...