美文网首页
Spring mvc之RequestCondition接口

Spring mvc之RequestCondition接口

作者: engineer_tang | 来源:发表于2021-04-10 16:16 被阅读0次

1. 定义

public interface RequestCondition<T> {

    T combine(T other);

    @Nullable
    T getMatchingCondition(HttpServletRequest request);

    int compareTo(T other, HttpServletRequest request);

}

请求映射条件的合同。

请求条件可以通过combine(Object)组合,通过getMatchingCondition(HttpServletRequest)与请求匹配,并通过compareTo(Object, HttpServletRequest) 相互比较,以确定哪个更接近于给定请求。

1.1 combine方法

将此条件与另一个条件(例如类型级别的条件)和方法级别@RequestMapping注释中的条件组合在一起。

1.2 getMatchingCondition方法

检查条件是否与返回为当前请求创建的潜在新实例的请求匹配。例如,具有多个URL模式的条件只能返回与请求匹配的模式的新实例。

对于CORS飞行前请求,条件应与预期、实际请求(例如URL模式、查询参数和“访问控制请求方法”标题中的HTTP方法)匹配。如果条件无法与飞行前请求匹配,则应返回一个包含空内容的实例,从而不会导致匹配失败。

1.3 compareTo方法

将此条件与特定请求上下文中的另一个条件进行比较。此方法假设这两个实例都是通过getMatchingCondition(HttpServletRequest)获得的,以确保它们只包含与当前请求相关的内容。

2. 实现类

RequestCondition接口关系图.png

AbstractRequestCondition抽象类的实现类除了图上的4个外,还包括ConsumesRequestCondition、RequestConditionHolder、HeadersRequestCondition、CompositeRequestCondition。

相关文章

网友评论

      本文标题:Spring mvc之RequestCondition接口

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