竹简文档

工具类概览

HTTP 请求工具类,提供 Header 解析、Handler 解析等能力

工具类概览

bamboo-base-java 提供一组 HTTP 请求工具类,用于在过滤器层和业务代码中获取请求信息。

工具类列表

工具类框架说明
HttpServletUtil仅 MVCServlet 请求工具,提供 HandlerMethod 解析能力
HeaderUtil仅 MVCHTTP 请求头工具,提供 Token、User-Agent 等提取
ServerWebExchangeUtil仅 WebFlux响应式请求工具,提供 Handler 解析与请求信息提取

MVC vs WebFlux 对比

功能MVC 工具WebFlux 工具
Handler 解析HttpServletUtil.getHandlerMethod()ServerWebExchangeUtil.getHandlerMethod()
客户端 IPrequest.getRemoteAddr()ServerWebExchangeUtil.getClientIp()
User-Agentrequest.getHeader()ServerWebExchangeUtil.getUserAgent()
Token 提取HeaderUtil.getAuthorizeUserUuid()自行从 exchange 提取

使用场景

过滤器层

在过滤器中检查目标方法的注解:

CustomFilter.java
// MVC
HandlerMethod handler = HttpServletUtil.getHandlerMethod(request, handlerMapping);
NeedPermission annotation = handler.getMethodAnnotation(NeedPermission.class);

// WebFlux
return ServerWebExchangeUtil.getHandlerMethod(exchange, handlerMapping)
        .flatMap(handler -> {
            NeedPermission annotation = handler.getMethodAnnotation(NeedPermission.class);
            // ...
        });

业务代码

在业务代码中提取请求信息:

AuditService.java
// MVC
UUID userId = HeaderUtil.getAuthorizeUserUuid(request);
String clientIp = request.getRemoteAddr();

// WebFlux
String clientIp = ServerWebExchangeUtil.getClientIp(exchange);
String userAgent = ServerWebExchangeUtil.getUserAgent(exchange);

下一步

On this page