美文网首页
Spring mvc之ParameterNameDiscover

Spring mvc之ParameterNameDiscover

作者: engineer_tang | 来源:发表于2021-04-14 08:34 被阅读0次

1. 定义

接口来发现方法和构造函数的参数名。
参数名发现并不总是可能的,但是可以尝试各种策略,例如查找可能在编译时发出的调试信息,以及查找可选的伴随AspectJ注释方法的argname注释值。

接口定义如下:

public interface ParameterNameDiscoverer {

    @Nullable
    String[] getParameterNames(Method method);

    @Nullable
    String[] getParameterNames(Constructor<?> ctor);
}

从接口中声明的方法可以知道,这是两个重载方法,只是方法的参数类型的不同。

1.1 getParameterNames(Method method)方法

返回方法的参数名,如果无法确定,则返回null。

如果参数名仅对给定方法的某些参数可用,而对其他参数不可用,则数组中的单个条目可能为空。但是,建议在可行的情况下改用存根参数名。

1.2 getParameterNames(Constructor<?> ctor)方法

返回构造函数的参数名,如果无法确定,则返回null。

如果参数名仅适用于给定构造函数的某些参数,而不适用于其他参数,则数组中的单个条目可能为空。但是,建议在可行的情况下改用存根参数名。

2. 实现类

image.png

除图中的实现类外,还有AbstractAspectJAdvisorFactory的内部类AspectJAnnotationParameterNameDiscoverer和LocalVariableTableParameterNameDiscoverer类。

相关文章

网友评论

      本文标题:Spring mvc之ParameterNameDiscover

      本文链接:https://www.haomeiwen.com/subject/sxgahltx.html