Module bus.starter

Class ContextBuilder

java.lang.Object
org.springframework.web.util.WebUtils
org.miaixz.bus.spring.ContextBuilder

public class ContextBuilder extends org.springframework.web.util.WebUtils
HTTP 请求、SpEL 表达式、用户信息等的便捷操作
Since:
Java 17+
Author:
Kimi Liu
  • Field Summary

    Fields inherited from class org.springframework.web.util.WebUtils

    CONTENT_TYPE_CHARSET_PREFIX, DEFAULT_CHARACTER_ENCODING, DEFAULT_WEB_APP_ROOT_KEY, ERROR_EXCEPTION_ATTRIBUTE, ERROR_EXCEPTION_TYPE_ATTRIBUTE, ERROR_MESSAGE_ATTRIBUTE, ERROR_REQUEST_URI_ATTRIBUTE, ERROR_SERVLET_NAME_ATTRIBUTE, ERROR_STATUS_CODE_ATTRIBUTE, FORWARD_CONTEXT_PATH_ATTRIBUTE, FORWARD_PATH_INFO_ATTRIBUTE, FORWARD_QUERY_STRING_ATTRIBUTE, FORWARD_REQUEST_URI_ATTRIBUTE, FORWARD_SERVLET_PATH_ATTRIBUTE, HTML_ESCAPE_CONTEXT_PARAM, INCLUDE_CONTEXT_PATH_ATTRIBUTE, INCLUDE_PATH_INFO_ATTRIBUTE, INCLUDE_QUERY_STRING_ATTRIBUTE, INCLUDE_REQUEST_URI_ATTRIBUTE, INCLUDE_SERVLET_PATH_ATTRIBUTE, RESPONSE_ENCODED_HTML_ESCAPE_CONTEXT_PARAM, SESSION_MUTEX_ATTRIBUTE, SUBMIT_IMAGE_SUFFIXES, TEMP_DIR_CONTEXT_ATTRIBUTE, WEB_APP_ROOT_KEY_PARAM
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    getConditionValue(Object root, String expressionString)
    根据 SpEL 表达式进行条件求值 如果值为 null 则返回 false;如果为 Boolean 类型则直接返回;如果为 Number 类型则判断是否大于 0
    static boolean
    getConditionValue(Object root, String... expressionStrings)
    根据多个 SpEL 表达式进行条件求值,所有表达式结果需为 true 才返回 true
    static org.miaixz.bus.core.basic.entity.Authorize
    获取当前用户信息
    static org.springframework.expression.Expression
    getExpression(String expressionString)
    获取 SpEL 表达式对象
    static <T> T
    getExpressionValue(Object root, String expressionString)
    根据 SpEL 表达式从根对象中获取值(无类型指定)
    static <T> T[]
    getExpressionValue(Object root, String... expressionStrings)
    根据多个 SpEL 表达式从根对象中获取值数组
    static <T> T
    getExpressionValue(Object root, String expressionString, Class<? extends T> clazz)
    根据 SpEL 表达式从根对象中获取指定类型的值
    static Map<String,String>
    getHeaders(jakarta.servlet.http.HttpServletRequest request)
    获取 HTTP 请求的所有 Header
    static Map<String,String>
    getParameters(jakarta.servlet.http.HttpServletRequest request)
    获取 HTTP 请求的所有参数
    static jakarta.servlet.http.HttpServletRequest
    获取当前 HTTP 请求的 HttpServletRequest 对象
    static String
    获取当前会话的 Session ID
    static String
    获取租户 ID,依次从以下来源尝试获取: 1.

    Methods inherited from class org.springframework.web.util.WebUtils

    clearErrorRequestAttributes, exposeErrorRequestAttributes, findParameterValue, findParameterValue, getCookie, getDefaultHtmlEscape, getNativeRequest, getNativeResponse, getParametersStartingWith, getRealPath, getRequiredSessionAttribute, getResponseEncodedHtmlEscape, getSessionAttribute, getSessionId, getSessionMutex, getTempDir, hasSubmitParameter, isIncludeRequest, isSameOrigin, isValidOrigin, parseMatrixVariables, removeWebAppRootSystemProperty, setSessionAttribute, setWebAppRootSystemProperty

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ContextBuilder

      public ContextBuilder()
  • Method Details

    • getExpression

      @Nullable public static org.springframework.expression.Expression getExpression(@Nullable String expressionString)
      获取 SpEL 表达式对象
      Parameters:
      expressionString - SpEL 表达式字符串,例如 #{param.id}
      Returns:
      解析后的 Expression 对象,如果表达式为空则返回 null
    • getExpressionValue

      @Nullable public static <T> T getExpressionValue(@Nullable Object root, @Nullable String expressionString, @NonNull Class<? extends T> clazz)
      根据 SpEL 表达式从根对象中获取指定类型的值
      Type Parameters:
      T - 泛型类型
      Parameters:
      root - 根对象
      expressionString - SpEL 表达式字符串
      clazz - 返回值的目标类型
      Returns:
      表达式求值结果,如果根对象或表达式为空则返回 null
    • getExpressionValue

      @Nullable public static <T> T getExpressionValue(@Nullable Object root, @Nullable String expressionString)
      根据 SpEL 表达式从根对象中获取值(无类型指定)
      Type Parameters:
      T - 泛型类型
      Parameters:
      root - 根对象
      expressionString - SpEL 表达式字符串
      Returns:
      表达式求值结果,如果根对象或表达式为空则返回 null
    • getExpressionValue

      public static <T> T[] getExpressionValue(@Nullable Object root, @Nullable String... expressionStrings)
      根据多个 SpEL 表达式从根对象中获取值数组
      Type Parameters:
      T - 泛型类型,建议使用 Object 以避免类型转换异常
      Parameters:
      root - 根对象
      expressionStrings - SpEL 表达式字符串数组
      Returns:
      表达式求值结果数组,如果根对象或表达式数组为空则返回 null
    • getConditionValue

      @Nullable public static boolean getConditionValue(@Nullable Object root, @Nullable String expressionString)
      根据 SpEL 表达式进行条件求值 如果值为 null 则返回 false;如果为 Boolean 类型则直接返回;如果为 Number 类型则判断是否大于 0
      Parameters:
      root - 根对象
      expressionString - SpEL 表达式字符串
      Returns:
      条件求值结果
    • getConditionValue

      @Nullable public static boolean getConditionValue(@Nullable Object root, @Nullable String... expressionStrings)
      根据多个 SpEL 表达式进行条件求值,所有表达式结果需为 true 才返回 true
      Parameters:
      root - 根对象
      expressionStrings - SpEL 表达式字符串数组
      Returns:
      条件求值结果,所有表达式均为 true 时返回 true,否则返回 false
    • getRequest

      public static jakarta.servlet.http.HttpServletRequest getRequest()
      获取当前 HTTP 请求的 HttpServletRequest 对象
      Returns:
      HttpServletRequest 对象,如果无法获取则返回 null
    • getSessionId

      public static String getSessionId()
      获取当前会话的 Session ID
      Returns:
      Session ID,如果请求或会话不存在则返回 null
    • getHeaders

      public static Map<String,String> getHeaders(jakarta.servlet.http.HttpServletRequest request)
      获取 HTTP 请求的所有 Header
      Parameters:
      request - HTTP 请求对象
      Returns:
      Header 键值对映射
    • getParameters

      public static Map<String,String> getParameters(jakarta.servlet.http.HttpServletRequest request)
      获取 HTTP 请求的所有参数
      Parameters:
      request - HTTP 请求对象
      Returns:
      参数键值对映射
    • getCurrentUser

      public static org.miaixz.bus.core.basic.entity.Authorize getCurrentUser()
      获取当前用户信息
      Returns:
      Authorize 对象,如果无法获取则返回 null
    • getTenantId

      public static String getTenantId()
      获取租户 ID,依次从以下来源尝试获取: 1. HTTP 请求头中的 'x_tenant_id' 2. HTTP 请求头中的 'tenant_id' 3. 当前登录用户的授权数据 4. 线程池上下文变量
      Returns:
      租户 ID 字符串,如果未找到或发生错误则返回 null