千家信息网

spring boot中WebFluxTagsProvider的作用是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"spring boot中WebFluxTagsProvider的作用是什么",在日常操作中,相信很多人在spring boot中WebFluxTagsProvider的作用是什么问题
千家信息网最后更新 2026年11月02日spring boot中WebFluxTagsProvider的作用是什么

这篇文章主要介绍"spring boot中WebFluxTagsProvider的作用是什么",在日常操作中,相信很多人在spring boot中WebFluxTagsProvider的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"spring boot中WebFluxTagsProvider的作用是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

序

本文主要研究一下webflux的WebFluxTagsProvider

WebFluxTagsProvider

spring-boot-actuator-2.1.5.RELEASE-sources.jar!/org/springframework/boot/actuate/metrics/web/reactive/server/WebFluxTagsProvider.java

@FunctionalInterfacepublic interface WebFluxTagsProvider {        /**         * Provides tags to be associated with metrics for the given {@code exchange}.         * @param exchange the exchange         * @param ex the current exception (may be {@code null})         * @return tags to associate with metrics for the request and response exchange         */        Iterable httpRequestTags(ServerWebExchange exchange, Throwable ex);}
  • WebFluxTagsProvider接口定义了httpRequestTags方法

DefaultWebFluxTagsProvider

spring-boot-actuator-2.1.5.RELEASE-sources.jar!/org/springframework/boot/actuate/metrics/web/reactive/server/DefaultWebFluxTagsProvider.java

public class DefaultWebFluxTagsProvider implements WebFluxTagsProvider {        @Override        public Iterable httpRequestTags(ServerWebExchange exchange,                        Throwable exception) {                return Arrays.asList(WebFluxTags.method(exchange), WebFluxTags.uri(exchange),                                WebFluxTags.exception(exception), WebFluxTags.status(exchange),                                WebFluxTags.outcome(exchange));        }}
  • DefaultWebFluxTagsProvider实现了WebFluxTagsProvider接口,它返回了method、uri、exception、status、outcome这几个tag

WebFluxTags

spring-boot-actuator-2.1.5.RELEASE-sources.jar!/org/springframework/boot/actuate/metrics/web/reactive/server/WebFluxTags.java

public final class WebFluxTags {        private static final Tag URI_NOT_FOUND = Tag.of("uri", "NOT_FOUND");        private static final Tag URI_REDIRECTION = Tag.of("uri", "REDIRECTION");        private static final Tag URI_ROOT = Tag.of("uri", "root");        private static final Tag URI_UNKNOWN = Tag.of("uri", "UNKNOWN");        private static final Tag EXCEPTION_NONE = Tag.of("exception", "None");        private static final Tag OUTCOME_UNKNOWN = Tag.of("outcome", "UNKNOWN");        private static final Tag OUTCOME_INFORMATIONAL = Tag.of("outcome", "INFORMATIONAL");        private static final Tag OUTCOME_SUCCESS = Tag.of("outcome", "SUCCESS");        private static final Tag OUTCOME_REDIRECTION = Tag.of("outcome", "REDIRECTION");        private static final Tag OUTCOME_CLIENT_ERROR = Tag.of("outcome", "CLIENT_ERROR");        private static final Tag OUTCOME_SERVER_ERROR = Tag.of("outcome", "SERVER_ERROR");        private WebFluxTags() {        }        public static Tag method(ServerWebExchange exchange) {                return Tag.of("method", exchange.getRequest().getMethodValue());        }        public static Tag status(ServerWebExchange exchange) {                HttpStatus status = exchange.getResponse().getStatusCode();                if (status == null) {                        status = HttpStatus.OK;                }                return Tag.of("status", String.valueOf(status.value()));        }        public static Tag uri(ServerWebExchange exchange) {                PathPattern pathPattern = exchange                                .getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);                if (pathPattern != null) {                        return Tag.of("uri", pathPattern.getPatternString());                }                HttpStatus status = exchange.getResponse().getStatusCode();                if (status != null) {                        if (status.is3xxRedirection()) {                                return URI_REDIRECTION;                        }                        if (status == HttpStatus.NOT_FOUND) {                                return URI_NOT_FOUND;                        }                }                String path = getPathInfo(exchange);                if (path.isEmpty()) {                        return URI_ROOT;                }                return URI_UNKNOWN;        }        private static String getPathInfo(ServerWebExchange exchange) {                String path = exchange.getRequest().getPath().value();                String uri = StringUtils.hasText(path) ? path : "/";                return uri.replaceAll("//+", "/").replaceAll("/$", "");        }        public static Tag exception(Throwable exception) {                if (exception != null) {                        String simpleName = exception.getClass().getSimpleName();                        return Tag.of("exception", StringUtils.hasText(simpleName) ? simpleName                                        : exception.getClass().getName());                }                return EXCEPTION_NONE;        }        public static Tag outcome(ServerWebExchange exchange) {                HttpStatus status = exchange.getResponse().getStatusCode();                if (status != null) {                        if (status.is1xxInformational()) {                                return OUTCOME_INFORMATIONAL;                        }                        if (status.is2xxSuccessful()) {                                return OUTCOME_SUCCESS;                        }                        if (status.is3xxRedirection()) {                                return OUTCOME_REDIRECTION;                        }                        if (status.is4xxClientError()) {                                return OUTCOME_CLIENT_ERROR;                        }                        return OUTCOME_SERVER_ERROR;                }                return OUTCOME_UNKNOWN;        }}
  • WebFluxTags定义了URI_NOT_FOUND、URI_REDIRECTION、URI_ROOT、URI_UNKNOWN、EXCEPTION_NONE、OUTCOME_UNKNOWN、OUTCOME_INFORMATIONAL、OUTCOME_SUCCESS、OUTCOME_REDIRECTION、OUTCOME_CLIENT_ERROR、OUTCOME_SERVER_ERROR这些Tag常量

小结

WebFluxTagsProvider接口定义了httpRequestTags方法;DefaultWebFluxTagsProvider实现了WebFluxTagsProvider接口,它返回了method、uri、exception、status、outcome这几个tag;WebFluxTags定义了URI_NOT_FOUND、URI_REDIRECTION、URI_ROOT、URI_UNKNOWN、EXCEPTION_NONE、OUTCOME_UNKNOWN、OUTCOME_INFORMATIONAL、OUTCOME_SUCCESS、OUTCOME_REDIRECTION、OUTCOME_CLIENT_ERROR、OUTCOME_SERVER_ERROR这些Tag常量

到此,关于"spring boot中WebFluxTagsProvider的作用是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

作用 接口 学习 方法 常量 更多 帮助 实用 接下来 小结 文章 理论 知识 篇文章 网站 资料 跟着 问题 好用 实践 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技与互联网发展 互联网科技网站 互联网科技论坛 互联网科技宣传片 互联网科技有限公司 翻译 新华互联网科技校企合作 深圳互联网科技怎么样 互联网 科技馆 湖南洣水互联网科技有限公司扣款 茂名市互联网科技产业园 现代互联网科技股 互联网科技产业特征 速维有品互联网信息科技(苏州)有限公司 保险科技服务互联网营销体系 智帮互联网科技公司最近动向 中国互联网有什么科技 互联网领先科技宣传片 互联网科技包装股份有限公司上市 互联网科技新闻 陕西九四连强互联网科技有限公司 互联网科技公司税收优惠 衡水科技产业互联网平台 互联网和高科技公司 随着互联网科技发展 互联网金融科技公司干啥的 洛阳昕诺飞互联网科技有限公司 翼展科技 首家互联网医院 中科明德北京互联网科技 互联网科技包装股份有限公司上市 国产互联网科技公司
0