Under-Utils
stable 1.0.2 1.0.3-SNAPSHOT

Public API 索引

API 浏览器由构建脚本从 src/main/java 的真实 public/protected API 自动生成,覆盖 11 个正式发布模块,不再依赖手写种子数据或 iframe Javadoc frames。

stable under-utils-ai interface since 1.0.2

AiClient

com.undernine.utils.ai.AiClient

AI 模型调用入口。

under-utils-ai/src/main/java/com/undernine/utils/ai/AiClient.java

4 个 public/protected 成员
  • static Builder builder() 创建 OpenAI-compatible AI client 构建器。
  • ChatResponse chat(ChatRequest request) 执行文本对话。
  • default ChatResponse chat(String userMessage) 执行单条 user 消息文本对话。
  • final class Builder AI client 构建器。
stable under-utils-ai class since 1.0.2

AiClientOptions

com.undernine.utils.ai.AiClientOptions

AI 客户端配置。

under-utils-ai/src/main/java/com/undernine/utils/ai/AiClientOptions.java

14 个 public/protected 成员
  • public static Builder builder() 创建配置构建器。
  • public String getApiKey() API key。可能为空,为空时不会发送 Authorization header。
  • public String getBaseUrl() 模型服务基础地址。
  • public String getChatCompletionsPath() Chat Completions 路径。
  • public Map<String, String> getHeaders() 默认请求头。
  • public int getMaxRetries() 最大重试次数。
  • public Integer getMaxTokens() 默认最大输出 token 数。
  • public String getModel() 默认模型名称。
  • public Duration getRetryInterval() 重试间隔。
  • public Double getTemperature() 默认采样温度。
  • public Duration getTimeout() HTTP 超时时间。
  • public Builder toBuilder() 基于当前配置创建构建器。
  • public String toString()
  • public static final class Builder AI 客户端配置构建器。
stable under-utils-ai interface since 1.0.2

AiClientProvider

com.undernine.utils.ai.AiClientProvider

AI client provider 扩展点。

under-utils-ai/src/main/java/com/undernine/utils/ai/AiClientProvider.java

4 个 public/protected 成员
  • AiClient create(AiClientOptions options) 创建 AI client。
  • static String normalize(String provider) 规范化 provider 名称。
  • String provider() provider 名称。
  • default boolean supports(String provider) 当前 provider 是否支持给定名称。
stable under-utils-ai interface since 1.0.3

AiClientRegistry

com.undernine.utils.ai.AiClientRegistry

按名称管理多个 AI client 的注册表。

under-utils-ai/src/main/java/com/undernine/utils/ai/AiClientRegistry.java

9 个 public/protected 成员
  • default boolean contains(String name) 是否存在指定名称的 AI client。
  • Optional<AiClient> find(String name) 按名称查找 AI client。
  • AiClient get(String name) 按名称获取 AI client。
  • default AiClient getDefaultClient() 默认 AI client。
  • String getDefaultName() 默认客户端名称。
  • default StreamingAiClient getDefaultStreaming() 获取默认的流式 AI client。
  • default StreamingAiClient getStreaming(String name) 按名称获取支持流式对话的 AI client。
  • Set<String> names() 已注册的客户端名称。
  • static String normalizeName(String name) 规范化客户端名称。
stable under-utils-ai enum since 1.0.2

AiErrorType

com.undernine.utils.ai.AiErrorType

AI 调用错误分类。

under-utils-ai/src/main/java/com/undernine/utils/ai/AiErrorType.java

8 个 public/protected 成员
  • public static final AiErrorType AUTHENTICATION 鉴权失败或无权限。
  • public static final AiErrorType CLIENT_ERROR 客户端请求错误。
  • public static final AiErrorType NETWORK 网络连接失败。
  • public static final AiErrorType RATE_LIMIT 触发模型服务限流。
  • public static final AiErrorType RESPONSE_PARSE 响应解析失败。
  • public static final AiErrorType SERVER_ERROR 模型服务端错误。
  • public static final AiErrorType TIMEOUT 请求超时。
  • public static final AiErrorType UNKNOWN 未归类错误。
stable under-utils-ai class since 1.0.2

AiException

com.undernine.utils.ai.AiException

AI 模型调用异常。

under-utils-ai/src/main/java/com/undernine/utils/ai/AiException.java

6 个 public/protected 成员
  • public AiException(AiErrorType errorType, String message, int statusCode, String errorCode, boolean retryable) 构造 AI 调用异常。
  • public AiException(AiErrorType errorType, String message, int statusCode, String errorCode, boolean retryable, Throwable cause) 构造 AI 调用异常。
  • public String getErrorCode() 上游错误码。
  • public AiErrorType getErrorType() 错误分类。
  • public int getStatusCode() HTTP 状态码,没有响应时为 0。
  • public boolean isRetryable() 是否适合由调用方重试。
stable under-utils-ai class since 1.0.2

AiProviderNames

com.undernine.utils.ai.AiProviderNames

AI provider 名称常量。

under-utils-ai/src/main/java/com/undernine/utils/ai/AiProviderNames.java

1 个 public/protected 成员
  • public static final String OPENAI_COMPATIBLE OpenAI-compatible Chat Completions 协议。
stable under-utils-ai class since 1.0.2

AiResponseMetadata

com.undernine.utils.ai.AiResponseMetadata

AI 响应元数据。

under-utils-ai/src/main/java/com/undernine/utils/ai/AiResponseMetadata.java

8 个 public/protected 成员
  • public static Builder builder() 创建响应元数据构建器。
  • public Duration getDuration() 请求耗时。
  • public String getModelFingerprint() 模型指纹。
  • public String getProvider() provider 名称。
  • public String getRequestId() 调用方传入的请求 ID。
  • public String getResponseId() 模型服务返回的响应 ID。
  • public String toString()
  • public static final class Builder 响应元数据构建器。
stable under-utils-ai class since 1.0.2

ChatMessage

com.undernine.utils.ai.ChatMessage

对话消息。

under-utils-ai/src/main/java/com/undernine/utils/ai/ChatMessage.java

6 个 public/protected 成员
  • public static ChatMessage assistant(String content) 创建 assistant 消息。
  • public String getContent() 消息内容。
  • public ChatRole getRole() 消息角色。
  • public static ChatMessage system(String content) 创建 system 消息。
  • public String toString()
  • public static ChatMessage user(String content) 创建 user 消息。
stable under-utils-ai class since 1.0.2

ChatRequest

com.undernine.utils.ai.ChatRequest

文本对话请求。

under-utils-ai/src/main/java/com/undernine/utils/ai/ChatRequest.java

11 个 public/protected 成员
  • public static Builder builder() 创建请求构建器。
  • public Map<String, Object> getExtraBody() 透传给 OpenAI-compatible API 的额外请求字段。
  • public Integer getMaxTokens() 最大输出 token 数。
  • public List<ChatMessage> getMessages() 对话消息。
  • public String getModel() 本次请求覆盖的模型名称。
  • public String getRequestId() 请求 ID。
  • public Double getTemperature() 采样温度。
  • public Builder toBuilder() 基于当前请求创建构建器。
  • public String toString()
  • public static ChatRequest user(String content) 创建只有一条 user 消息的请求。
  • public static final class Builder 对话请求构建器。
stable under-utils-ai class since 1.0.2

ChatResponse

com.undernine.utils.ai.ChatResponse

文本对话响应。

under-utils-ai/src/main/java/com/undernine/utils/ai/ChatResponse.java

13 个 public/protected 成员
  • public ChatResponse(String text, String model, String finishReason, String requestId, TokenUsage usage) 创建文本对话响应。
  • public ChatResponse(String text, String model, String finishReason, String requestId, TokenUsage usage, AiResponseMetadata metadata) 创建文本对话响应。
  • public Duration getDuration() 请求耗时。
  • public String getFinishReason() 结束原因。
  • public AiResponseMetadata getMetadata() 响应元数据。
  • public String getModel() 模型名称。
  • public String getModelFingerprint() 模型指纹。
  • public String getRequestId() 请求 ID。
  • public String getResponseId() 模型服务返回的响应 ID。
  • public String getText() 文本结果。
  • public TokenUsage getUsage() token 用量。
  • public String text() 文本结果。
  • public String toString()
stable under-utils-ai enum since 1.0.2

ChatRole

com.undernine.utils.ai.ChatRole

对话消息角色。

under-utils-ai/src/main/java/com/undernine/utils/ai/ChatRole.java

4 个 public/protected 成员
  • public static final ChatRole ASSISTANT 模型回复。
  • public static final ChatRole SYSTEM 系统提示词。
  • public static final ChatRole USER 用户消息。
  • public String wireName() 协议中的角色名称。
stable under-utils-ai class since 1.0.2

ChatStream

com.undernine.utils.ai.ChatStream

流式文本对话响应。

under-utils-ai/src/main/java/com/undernine/utils/ai/ChatStream.java

4 个 public/protected 成员
  • public ChatStream(Iterator<ChatStreamEvent> iterator, AutoCloseable closeAction) 创建流式响应。
  • public void close()
  • public Iterator<ChatStreamEvent> iterator()
  • public Stream<ChatStreamEvent> stream() 转为 Java Stream。
stable under-utils-ai class since 1.0.2

ChatStreamEvent

com.undernine.utils.ai.ChatStreamEvent

流式文本对话事件。

under-utils-ai/src/main/java/com/undernine/utils/ai/ChatStreamEvent.java

15 个 public/protected 成员
  • public ChatStreamEvent(String text, String role, String model, String finishReason, TokenUsage usage, AiResponseMetadata metadata, boolean done) 创建流式文本对话事件。
  • public String delta() 增量文本,等价于 #text() 。
  • public String getFinishReason() 结束原因。
  • public AiResponseMetadata getMetadata() 响应元数据。
  • public String getModel() 模型名称。
  • public String getModelFingerprint() 模型指纹。
  • public String getRequestId() 调用方传入的请求 ID。
  • public String getResponseId() 模型服务返回的响应 ID。
  • public String getRole() 消息角色。
  • public String getText() 增量文本。
  • public TokenUsage getUsage() token 用量。
  • public boolean hasText() 是否包含非空文本增量。
  • public boolean isDone() 是否结束事件。
  • public String text() 增量文本。
  • public String toString()
stable under-utils-ai class since 1.0.3

DefaultAiClientRegistry

com.undernine.utils.ai.DefaultAiClientRegistry

默认 AI client 注册表实现。

under-utils-ai/src/main/java/com/undernine/utils/ai/DefaultAiClientRegistry.java

6 个 public/protected 成员
  • public DefaultAiClientRegistry(Map<String, ? extends AiClient> clients, String defaultName) 创建注册表。
  • public Optional<AiClient> find(String name)
  • public AiClient get(String name)
  • public String getDefaultName()
  • public Set<String> names()
  • public String toString()
stable under-utils-ai class since 1.0.2

OpenAiCompatibleAiClient

com.undernine.utils.ai.OpenAiCompatibleAiClient

OpenAI-compatible Chat Completions 客户端。

under-utils-ai/src/main/java/com/undernine/utils/ai/OpenAiCompatibleAiClient.java

4 个 public/protected 成员
  • public OpenAiCompatibleAiClient(AiClientOptions options) 创建 OpenAI-compatible AI client。
  • public ChatResponse chat(ChatRequest request)
  • public AiClientOptions getOptions() 客户端配置。
  • public ChatStream streamChat(ChatRequest request)
stable under-utils-ai class since 1.0.2

OpenAiCompatibleAiClientProvider

com.undernine.utils.ai.OpenAiCompatibleAiClientProvider

OpenAI-compatible AI client provider。

under-utils-ai/src/main/java/com/undernine/utils/ai/OpenAiCompatibleAiClientProvider.java

2 个 public/protected 成员
  • public AiClient create(AiClientOptions options)
  • public String provider()
stable under-utils-ai interface since 1.0.2

StreamingAiClient

com.undernine.utils.ai.StreamingAiClient

支持流式文本对话的 AI client。

under-utils-ai/src/main/java/com/undernine/utils/ai/StreamingAiClient.java

2 个 public/protected 成员
  • ChatStream streamChat(ChatRequest request) 执行流式文本对话。
  • default ChatStream streamChat(String userMessage) 执行单条 user 消息流式文本对话。
stable under-utils-ai class since 1.0.2

TokenUsage

com.undernine.utils.ai.TokenUsage

模型 token 用量。

under-utils-ai/src/main/java/com/undernine/utils/ai/TokenUsage.java

5 个 public/protected 成员
  • public TokenUsage(int promptTokens, int completionTokens, int totalTokens) 创建 token 用量。
  • public int getCompletionTokens() completion token 数。
  • public int getPromptTokens() prompt token 数。
  • public int getTotalTokens() 总 token 数。
  • public String toString()
stable under-utils-ai-starter class since 1.0.2

UnderUtilsAiAutoConfiguration

com.undernine.utils.starter.autoconfigure.UnderUtilsAiAutoConfiguration

AI 模块自动装配。

under-utils-ai-starter/src/main/java/com/undernine/utils/starter/autoconfigure/UnderUtilsAiAutoConfiguration.java

2 个 public/protected 成员
  • public AiClient aiClient(AiClientRegistry aiClientRegistry) 创建默认 AI client。
  • public AiClientRegistry aiClientRegistry(UnderUtilsAiProperties properties, ObjectProvider<AiClientProvider> aiClientProviders) 创建 AI client 注册表。
stable under-utils-ai-starter class since 1.0.2

UnderUtilsAiProperties

com.undernine.utils.starter.properties.UnderUtilsAiProperties

AI 自动装配配置。

under-utils-ai-starter/src/main/java/com/undernine/utils/starter/properties/UnderUtilsAiProperties.java

29 个 public/protected 成员
  • public String getApiKey()
  • public String getBaseUrl()
  • public String getChatCompletionsPath()
  • public Map<String, Client> getClients()
  • public String getDefaultClient()
  • public Map<String, String> getHeaders()
  • public int getMaxRetries()
  • public Integer getMaxTokens()
  • public String getModel()
  • public String getProvider()
  • public Duration getRetryInterval()
  • public Double getTemperature()
  • public Duration getTimeout()
  • public boolean isEnabled()
  • public void setApiKey(String apiKey)
  • public void setBaseUrl(String baseUrl)
  • public void setChatCompletionsPath(String chatCompletionsPath)
  • public void setClients(Map<String, Client> clients)
  • public void setDefaultClient(String defaultClient)
  • public void setEnabled(boolean enabled)
  • public void setHeaders(Map<String, String> headers)
  • public void setMaxRetries(int maxRetries)
  • public void setMaxTokens(Integer maxTokens)
  • public void setModel(String model)
  • public void setProvider(String provider)
  • public void setRetryInterval(Duration retryInterval)
  • public void setTemperature(Double temperature)
  • public void setTimeout(Duration timeout)
  • public static class Client 单个命名 AI client 配置。
stable under-utils-biz class since 1.0.1

AsyncImportTaskTemplate

com.undernine.utils.biz.importtask.AsyncImportTaskTemplate

异步导入任务模板。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/AsyncImportTaskTemplate.java

13 个 public/protected 成员
  • public AsyncImportTaskTemplate(Executor executor) 使用默认导入选项创建异步模板。
  • public AsyncImportTaskTemplate(ImportOptions options, Executor executor) 使用指定导入选项创建异步模板。
  • public AsyncImportTaskTemplate(ImportOptions options, Executor executor, Duration taskRetention) 使用指定导入选项、执行器和任务状态保留时间创建异步模板。
  • public AsyncImportTaskTemplate(ImportOptions options, Executor executor, Duration taskRetention, Duration cleanupInterval) 使用指定导入选项、执行器、任务状态保留时间和清理间隔创建异步模板。
  • public void close() 关闭任务状态后台清理线程。
  • public Optional<Throwable> findFailure(String taskId) 查询任务级失败。
  • public Optional<ImportProgress> findProgress(String taskId) 查询任务进度。
  • public Optional<ImportResult> findResult(String taskId) 查询已完成任务的导入结果。
  • public void remove(String taskId) 移除任务快照。
  • public <R, T> String submit(ImportRowReader<R> rowReader, ImportRowHandler<R, T> handler) 提交行读取器导入任务,并自动生成任务 ID。读取器会在后台任务结束时关闭。
  • public <R, T> String submit(Iterable<R> rows, ImportRowHandler<R, T> handler) 提交 Iterable 行数据导入任务,并自动生成任务 ID。
  • public <R, T> String submit(String taskId, ImportRowReader<R> rowReader, ImportRowHandler<R, T> handler) 提交行读取器导入任务。读取器会在后台任务结束时关闭。
  • public <R, T> String submit(String taskId, Iterable<R> rows, ImportRowHandler<R, T> handler) 提交 Iterable 行数据导入任务。
stable under-utils-biz class since 1.0.0

CsvImportRowReader

com.undernine.utils.biz.importtask.CsvImportRowReader

CSV 导入行读取器。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/CsvImportRowReader.java

6 个 public/protected 成员
  • public static Builder builder(Reader reader) 创建 CSV 读取器构建器。
  • public void close() throws IOException
  • public Iterator<CsvRow> iterator()
  • public static CsvImportRowReader of(Reader reader) 创建默认 CSV 读取器。
  • public enum BlankRowPolicy CSV 空白行策略。
  • public static final class Builder CSV 导入行读取器构建器。
stable under-utils-biz class since 1.0.0

CsvRow

com.undernine.utils.biz.importtask.CsvRow

CSV 导入原始行。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/CsvRow.java

9 个 public/protected 成员
  • public CsvRow(int rowNumber, List<String> headers, List<String> values) 创建 CSV 行。
  • public boolean containsHeader(String header) 判断是否存在表头。
  • public String get(String header) 按表头取值。未知表头或值缺失时返回 null。
  • public String get(int index) 按 0-based 下标取值。下标越界时返回 null。
  • public List<String> getHeaders() 表头列表。
  • public int getRowNumber() 输入源中的 1-based 行号。
  • public List<String> getValues() 当前行值列表。
  • public boolean isBlank() 判断当前行是否为空白行。
  • public String toString()
stable under-utils-biz class since 1.0.0

ImportErrorCodes

com.undernine.utils.biz.importtask.ImportErrorCodes

导入任务内置错误码。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportErrorCodes.java

3 个 public/protected 成员
  • public static final String PARSE_ERROR 行解析失败。
  • public static final String PROCESS_ERROR 行处理失败。
  • public static final String VALIDATION_ERROR 行校验失败。
stable under-utils-biz class since 1.0.1

ImportErrorExporter

com.undernine.utils.biz.importtask.ImportErrorExporter

导入行级错误导出工具。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportErrorExporter.java

2 个 public/protected 成员
  • public static String toCsv(List<ImportRowError> errors) 将行级错误导出为 CSV 字符串。
  • public static void writeCsv(List<ImportRowError> errors, Appendable out) throws IOException 将行级错误写入 CSV。
stable under-utils-biz class since 1.0.0

ImportOptions

com.undernine.utils.biz.importtask.ImportOptions

导入任务执行选项。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportOptions.java

9 个 public/protected 成员
  • public static final int UNLIMITED_ERRORS maxErrors 为 0 时表示不限制错误数量。
  • public static Builder builder() 创建导入选项构建器。
  • public static ImportOptions defaults() 返回默认导入选项。
  • public int getMaxErrors() 最大收集错误数,0 表示不限制。
  • public ImportProgressListener getProgressListener() 获取导入进度监听器。
  • public boolean isFailFast() 是否在首个失败行后停止。
  • public boolean isSkipBlankRows() 是否跳过空白行。
  • public Builder toBuilder() 基于当前选项创建构建器。
  • public static final class Builder 导入选项构建器。
stable under-utils-biz class since 1.0.1

ImportProgress

com.undernine.utils.biz.importtask.ImportProgress

导入任务进度快照。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportProgress.java

14 个 public/protected 成员
  • public ImportProgress(String taskId, ImportTaskStatus status, int totalCount, int successCount, int failureCount, int skippedCount, int errorCount, Instant startedAt, Instant finishedAt, String failureMessage) 构造导入进度快照。
  • public static ImportProgress completed(String taskId, Instant startedAt, Instant finishedAt, ImportResult result) 从执行结果创建完成态进度。
  • public static ImportProgress failed(String taskId, Instant startedAt, Instant finishedAt, ImportProgress previous, String failureMessage) 创建任务级失败进度。
  • public int getErrorCount()
  • public int getFailureCount()
  • public String getFailureMessage()
  • public Instant getFinishedAt()
  • public int getSkippedCount()
  • public Instant getStartedAt()
  • public ImportTaskStatus getStatus()
  • public int getSuccessCount()
  • public String getTaskId()
  • public int getTotalCount()
  • public static ImportProgress pending(String taskId, Instant startedAt) 创建初始进度。
stable under-utils-biz interface since 1.0.1

ImportProgressListener

com.undernine.utils.biz.importtask.ImportProgressListener

导入进度监听器。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportProgressListener.java

2 个 public/protected 成员
  • static ImportProgressListener noop() 返回空监听器。
  • void onProgress(ImportProgress progress) 接收进度快照。
stable under-utils-biz class since 1.0.0

ImportResult

com.undernine.utils.biz.importtask.ImportResult

导入任务执行结果。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportResult.java

7 个 public/protected 成员
  • public ImportResult(int totalCount, int successCount, int failureCount, int skippedCount, List<ImportRowError> rowErrors) 构造导入结果。
  • public int getFailureCount() 失败行数。
  • public List<ImportRowError> getRowErrors() 行级错误列表。
  • public int getSkippedCount() 跳过行数。
  • public int getSuccessCount() 成功行数。
  • public int getTotalCount() 总行数。快速失败或达到 maxErrors 后提前停止时,表示已读取并处理的行数。
  • public boolean isAllSuccess() 是否全部成功。
stable under-utils-biz class since 1.0.0

ImportRowContext

com.undernine.utils.biz.importtask.ImportRowContext

当前导入行上下文。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportRowContext.java

3 个 public/protected 成员
  • public ImportRowContext(int rowNumber) 构造行上下文。
  • public int getRowIndex() 0-based 行索引。
  • public int getRowNumber() 1-based 行号。
stable under-utils-biz class since 1.0.0

ImportRowError

com.undernine.utils.biz.importtask.ImportRowError

导入行级错误。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportRowError.java

8 个 public/protected 成员
  • public ImportRowError(int rowNumber, String field, String errorCode, String message, String rawRowSummary) 构造行级错误。
  • public String getErrorCode() 错误码。
  • public String getField() 字段名。
  • public String getMessage() 错误消息。
  • public String getRawRowSummary() 原始行摘要。
  • public int getRowNumber() 1-based 行号。
  • public static ImportRowError of(String field, String errorCode, String message) 创建不含行号的错误,模板会在执行时补齐当前行号。
  • public static ImportRowError of(int rowNumber, String field, String errorCode, String message) 创建包含行号的错误。
stable under-utils-biz interface since 1.0.0

ImportRowHandler

com.undernine.utils.biz.importtask.ImportRowHandler

导入行处理器。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportRowHandler.java

5 个 public/protected 成员
  • default boolean isBlankRow(R rawRow) 判断原始行是否为空白行。默认仅将 null 视为空白行。
  • T parse(R rawRow, ImportRowContext context) throws Exception 解析原始行。
  • void process(T row, ImportRowContext context) throws Exception 处理校验通过的业务行。
  • default String summarizeRawRow(R rawRow) 生成原始行摘要,用于错误收集。默认使用 String.valueOf(rawRow)。
  • default List<ImportRowError> validate(T row, ImportRowContext context) throws Exception 校验业务行,可返回多个行级错误。
stable under-utils-biz interface since 1.0.0

ImportRowReader

com.undernine.utils.biz.importtask.ImportRowReader

导入行读取器。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportRowReader.java

1 个 public/protected 成员
  • void close() throws Exception 关闭底层输入资源。
stable under-utils-biz class since 1.0.0

ImportTaskException

com.undernine.utils.biz.importtask.ImportTaskException

导入任务级异常。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportTaskException.java

3 个 public/protected 成员
  • public ImportTaskException(String message) 构造任务级异常。
  • public ImportTaskException(String message, Throwable cause) 构造任务级异常。
  • public ImportTaskException(Throwable cause) 构造任务级异常。
stable under-utils-biz enum since 1.0.1

ImportTaskStatus

com.undernine.utils.biz.importtask.ImportTaskStatus

导入任务状态。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportTaskStatus.java

4 个 public/protected 成员
  • public static final ImportTaskStatus COMPLETED 已正常结束。是否存在行级错误需要继续查看 ImportResult 。
  • public static final ImportTaskStatus FAILED 任务级失败,例如读取器异常、配置错误或处理器主动抛出 ImportTaskException 。
  • public static final ImportTaskStatus PENDING 已登记,尚未开始执行。
  • public static final ImportTaskStatus RUNNING 正在执行。
stable under-utils-biz class since 1.0.0

ImportTaskTemplate

com.undernine.utils.biz.importtask.ImportTaskTemplate

导入任务模板。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/ImportTaskTemplate.java

8 个 public/protected 成员
  • public ImportTaskTemplate() 使用默认选项创建模板。
  • public ImportTaskTemplate(ImportOptions options) 使用指定选项创建模板。
  • public static ImportTaskTemplate create() 使用默认选项创建模板。
  • public static ImportTaskTemplate create(ImportOptions options) 使用指定选项创建模板。
  • public <R, T> ImportResult execute(ImportRowReader<R> rowReader, ImportRowHandler<R, T> handler) 导入行读取器数据。模板会在执行完成或异常退出时关闭读取器。
  • public <R, T> ImportResult execute(Iterable<R> rows, ImportRowHandler<R, T> handler) 导入 Iterable 行数据。
  • public <R, T> ImportResult execute(List<R> rows, ImportRowHandler<R, T> handler) 导入 List 行数据。
  • public ImportOptions getOptions() 获取模板选项。
stable under-utils-biz class since 1.0.0

RowValidationException

com.undernine.utils.biz.importtask.RowValidationException

行级校验异常。

under-utils-biz/src/main/java/com/undernine/utils/biz/importtask/RowValidationException.java

5 个 public/protected 成员
  • public RowValidationException(ImportRowError rowError) 构造单个错误的行级校验异常。
  • public RowValidationException(List<ImportRowError> rowErrors) 构造多个错误的行级校验异常。
  • public RowValidationException(String message) 构造行级校验异常。
  • public RowValidationException(String message, Throwable cause) 构造行级校验异常。
  • public List<ImportRowError> getRowErrors() 行级错误列表。
deprecated under-utils-core class since 1.0.0

CollectionUtils

com.undernine.utils.core.collection.CollectionUtils

集合工具类。

under-utils-core/src/main/java/com/undernine/utils/core/collection/CollectionUtils.java

19 个 public/protected 成员
  • public static <T> boolean addAll(Collection<T> collection, T[] elements) 批量添加元素到集合。
  • public static <T> boolean contains(Collection<T> collection, T element) 判断集合是否包含指定元素(空安全)。
  • public static <T> List<T> distinct(Collection<T> collection) 对集合去重(保持原有顺序)。
  • public static <T> T get(List<T> list, int index) 安全地获取 List 指定索引位置的元素。
  • public static <T> T get(List<T> list, int index, T defaultValue) 安全地获取 List 指定索引位置的元素,如果越界则返回默认值。
  • public static <T> T getFirst(List<T> list) 安全地获取 List 的第一个元素。
  • public static <T> T getLast(List<T> list) 安全地获取 List 的最后一个元素。
  • public static <T> List<T> intersection(Collection<T> coll1, Collection<T> coll2) 集合交集(获取两个集合的公共元素)。
  • public static boolean isEmpty(Collection<?> collection) 判断集合是否为空(null 或不含任何元素)。
  • public static boolean isEmpty(Map<?, ?> map) 判断 Map 是否为空(null 或不含任何键值对)。
  • public static boolean isNotEmpty(Collection<?> collection) 判断集合是否非空(不为 null 且包含至少一个元素)。
  • public static boolean isNotEmpty(Map<?, ?> map) 判断 Map 是否非空(不为 null 且包含至少一个键值对)。
  • public static <T, R> List<R> map(Collection<T> collection, Function<T, R> mapper) 集合转换(映射)。
  • public static <T> List<List<T>> partition(List<T> list, int batchSize) 将 List 分批处理(分页)。
  • public static int size(Collection<?> collection) 获取集合的大小(元素个数)。
  • public static int size(Map<?, ?> map) 获取 Map 的大小(键值对个数)。
  • public static <T> List<T> subtract(Collection<T> coll1, Collection<T> coll2) 集合差集(获取第一个集合中不在第二个集合中的元素)。
  • public static <T> List<T> toList(T[] array) 将数组转换为 List。
  • public static <T> List<T> union(Collection<T> coll1, Collection<T> coll2) 集合并集(合并两个集合并去重)。
deprecated under-utils-core class since 1.0.0

AESUtils

com.undernine.utils.core.crypto.AESUtils

AES 加密解密工具类。

under-utils-core/src/main/java/com/undernine/utils/core/crypto/AESUtils.java

9 个 public/protected 成员
  • public static String decrypt(String cipherText, String key, String iv) AES 解密(CBC 模式,Base64 编码)。
  • public static byte[] decryptBytes(byte[] cipherBytes, String key, String iv) AES 解密(字节数组,CBC 模式)。
  • public static String decryptECB(String cipherText, String key) AES 解密(ECB 模式,不需要 IV)。
  • public static String encrypt(String plainText, String key, String iv) AES 加密(CBC 模式,Base64 编码)。
  • public static byte[] encryptBytes(byte[] plainBytes, String key, String iv) AES 加密(字节数组,CBC 模式)。
  • public static String encryptECB(String plainText, String key) AES 加密(ECB 模式,不需要 IV,不推荐使用)。
  • public static String generateIV() 生成随机 IV(初始化向量)。
  • public static String generateKey() 生成随机 AES 密钥(128 位)。
  • public static String generateKey(int keySize) 生成随机 AES 密钥(指定位数)。
deprecated under-utils-core class since 1.0.0

MD5Utils

com.undernine.utils.core.crypto.MD5Utils

MD5 摘要工具类。

under-utils-core/src/main/java/com/undernine/utils/core/crypto/MD5Utils.java

9 个 public/protected 成员
  • public static String md5(String text) 计算字符串的 MD5 值(32 位小写十六进制)。
  • public static String md5(byte[] bytes) 计算字节数组的 MD5 值(32 位小写十六进制)。
  • public static byte[] md5Bytes(byte[] bytes) 计算字节数组的 MD5 值(返回字节数组)。
  • public static String md5Short(String text) 计算字符串的 MD5 值(16 位小写十六进制,取中间 16 位)。
  • public static String md5ShortUpper(String text) 计算字符串的 MD5 值(16 位大写十六进制,取中间 16 位)。
  • public static String md5Upper(String text) 计算字符串的 MD5 值(32 位大写十六进制)。
  • public static String md5WithSalt(String text, String salt) 计算加盐的 MD5 值。
  • public static boolean verify(String text, String md5Value) 验证 MD5 值是否匹配。
  • public static boolean verifyWithSalt(String text, String salt, String md5Value) 验证加盐 MD5 值是否匹配。
deprecated under-utils-core class since 1.0.0

SHA256Utils

com.undernine.utils.core.crypto.SHA256Utils

SHA-256 摘要工具类。

under-utils-core/src/main/java/com/undernine/utils/core/crypto/SHA256Utils.java

8 个 public/protected 成员
  • public static String sha256(String text) 计算字符串的 SHA-256 值(64 位小写十六进制)。
  • public static String sha256(byte[] bytes) 计算字节数组的 SHA-256 值(64 位小写十六进制)。
  • public static byte[] sha256Bytes(byte[] bytes) 计算字节数组的 SHA-256 值(返回字节数组)。
  • public static String sha256Multiple(String text, int times) 对字符串进行多次 SHA-256 哈希(增强安全性)。
  • public static String sha256Upper(String text) 计算字符串的 SHA-256 值(64 位大写十六进制)。
  • public static String sha256WithSalt(String text, String salt) 计算加盐的 SHA-256 值。
  • public static boolean verify(String text, String sha256Value) 验证 SHA-256 值是否匹配。
  • public static boolean verifyWithSalt(String text, String salt, String sha256Value) 验证加盐 SHA-256 值是否匹配。
stable under-utils-core class since 1.0.0

IdGenerator

com.undernine.utils.core.id.IdGenerator

分布式 ID 生成器(雪花算法 Snowflake)

under-utils-core/src/main/java/com/undernine/utils/core/id/IdGenerator.java

6 个 public/protected 成员
  • public IdGenerator() 构造方法。
  • public IdGenerator(long datacenterId, long workerId) 构造方法。
  • public synchronized long nextId() 生成下一个 ID(线程安全)。
  • public String nextIdStr() 生成下一个 ID(字符串形式)。
  • public IdInfo parseId(long id) 解析 ID,获取其包含的信息。
  • public static class IdInfo ID 信息类
deprecated under-utils-core class since 1.0.0

UUIDUtils

com.undernine.utils.core.id.UUIDUtils

UUID 生成工具类。

under-utils-core/src/main/java/com/undernine/utils/core/id/UUIDUtils.java

11 个 public/protected 成员
  • public static String fromBytes(byte[] bytes) 从字节数组创建 UUID 字符串。
  • public static boolean isValidUUID(String uuid) 验证字符串是否为有效的 UUID 格式。
  • public static String nameUUIDFromString(String name) 基于名称生成 UUID(MD5 算法,版本 3)。
  • public static String nameUUIDFromStringNoDash(String name) 基于名称生成 UUID(不包含连字符)。
  • public static String randomUUID() 生成标准的随机 UUID(包含连字符)。
  • public static String randomUUIDNoDash() 生成随机 UUID(不包含连字符)。
  • public static String randomUUIDUpperNoDash() 生成随机 UUID(大写,不包含连字符)。
  • public static String shortUUID() 生成短 UUID(22 位,Base62 编码)。
  • public static String timeBasedUUID() 生成基于时间戳的有序 UUID(适合数据库索引)。
  • public static String timeBasedUUIDWithDash() 生成基于时间戳的有序 UUID(带连字符,标准格式)。
  • public static byte[] toBytes(String uuid) 将 UUID 字符串转换为字节数组。
stable under-utils-core class since 1.0.0

JsonException

com.undernine.utils.core.json.JsonException

JSON 处理异常

under-utils-core/src/main/java/com/undernine/utils/core/json/JsonException.java

2 个 public/protected 成员
  • public JsonException(String message) 构造函数
  • public JsonException(String message, Throwable cause) 构造函数
deprecated under-utils-core class since 1.0.0

JsonUtils

com.undernine.utils.core.json.JsonUtils

JSON 工具类。

under-utils-core/src/main/java/com/undernine/utils/core/json/JsonUtils.java

9 个 public/protected 成员
  • public static <T> T fromJson(String json, Class<T> clazz) 将 JSON 字符串反序列化为指定类型的对象。
  • public static <T> T fromJson(String json, TypeReference<T> typeReference) 将 JSON 字符串反序列化为指定类型的对象(支持泛型)。
  • public static ObjectMapper getObjectMapper() 获取 ObjectMapper 实例(用于高级定制)。
  • public static boolean isValidJson(String json) 判断字符串是否为有效的 JSON 格式。
  • public static String toJson(Object obj) 将对象序列化为 JSON 字符串。
  • public static String toPrettyJson(Object obj) 将对象序列化为格式化的 JSON 字符串(带缩进)。
  • public static <T> T tryFromJson(String json, Class<T> clazz) 安全地将 JSON 字符串反序列化为指定类型的对象,失败时返回 null。
  • public static <T> T tryFromJson(String json, TypeReference<T> typeReference) 安全地将 JSON 字符串反序列化为指定类型的对象(支持泛型),失败时返回 null。
  • public static String tryToJson(Object obj) 安全地将对象序列化为 JSON 字符串,失败时返回 null。
stable under-utils-core class since 1.0.0

MoneyUtils

com.undernine.utils.core.money.MoneyUtils

金额计算工具类

under-utils-core/src/main/java/com/undernine/utils/core/money/MoneyUtils.java

26 个 public/protected 成员
  • public static BigDecimal abs(BigDecimal value) 获取金额的绝对值。
  • public static BigDecimal add(BigDecimal value1, BigDecimal value2) 金额相加。
  • public static BigDecimal add(BigDecimal[] values) 多个金额相加。
  • public static int compare(BigDecimal value1, BigDecimal value2) 比较两个金额的大小。
  • public static BigDecimal divide(BigDecimal dividend, BigDecimal divisor) 金额相除(使用默认的四舍五入模式)。
  • public static BigDecimal divide(BigDecimal dividend, BigDecimal divisor, int scale, RoundingMode roundingMode) 金额相除(指定小数位数和舍入模式)。
  • public static boolean equals(BigDecimal value1, BigDecimal value2) 判断两个金额是否相等。
  • public static BigDecimal fen2Yuan(Long fen) 分转元。
  • public static String format(BigDecimal value) 格式化金额为标准显示格式(保留 2 位小数,千分位分隔)。
  • public static String format(BigDecimal value, String pattern) 格式化金额为指定格式。
  • public static String formatWithSymbol(BigDecimal value) 格式化金额为货币显示格式(带货币符号)。
  • public static String formatWithSymbol(BigDecimal value, String symbol) 格式化金额为货币显示格式(自定义货币符号)。
  • public static boolean greaterThan(BigDecimal value1, BigDecimal value2) 判断金额是否大于另一个金额。
  • public static boolean greaterThanOrEqual(BigDecimal value1, BigDecimal value2) 判断金额是否大于等于另一个金额。
  • public static boolean isNegative(BigDecimal value) 判断金额是否为负数。
  • public static boolean isPositive(BigDecimal value) 判断金额是否为正数。
  • public static boolean isZero(BigDecimal value) 判断金额是否为零。
  • public static boolean lessThan(BigDecimal value1, BigDecimal value2) 判断金额是否小于另一个金额。
  • public static boolean lessThanOrEqual(BigDecimal value1, BigDecimal value2) 判断金额是否小于等于另一个金额。
  • public static BigDecimal max(BigDecimal value1, BigDecimal value2) 获取两个金额中的较大值。
  • public static BigDecimal min(BigDecimal value1, BigDecimal value2) 获取两个金额中的较小值。
  • public static BigDecimal multiply(BigDecimal value1, BigDecimal value2) 金额相乘。
  • public static BigDecimal negate(BigDecimal value) 获取金额的相反数。
  • public static BigDecimal setScale(BigDecimal value, int scale) 设置金额的小数位数(使用默认的四舍五入模式)。
  • public static BigDecimal subtract(BigDecimal value1, BigDecimal value2) 金额相减。
  • public static Long yuan2Fen(BigDecimal yuan) 元转分(四舍五入到整数)。
deprecated under-utils-core class since 1.0.0

StringUtils

com.undernine.utils.core.string.StringUtils

字符串工具类。

under-utils-core/src/main/java/com/undernine/utils/core/string/StringUtils.java

9 个 public/protected 成员
  • public static String defaultIfBlank(String str, String defaultValue) 返回默认值(如果字符串为空白)。
  • public static String defaultIfEmpty(String str, String defaultValue) 返回默认值(如果字符串为空)。
  • public static boolean isBlank(String str) 判断字符串是否为空白(null、空字符串或只包含空白字符)。
  • public static boolean isEmpty(String str) 判断字符串是否为空(null 或去除首尾空格后长度为 0)。
  • public static boolean isNotBlank(String str) 判断字符串是否非空白。
  • public static boolean isNotEmpty(String str) 判断字符串是否非空(不为 null 且去除首尾空格后长度大于 0)。
  • public static String trim(String str) 安全地对字符串进行 trim 操作,如果字符串为 null 则返回 null。
  • public static String trimToEmpty(String str) 安全地对字符串进行 trim 操作,如果字符串为 null 或 trim 后为空则返回空字符串。
  • public static String trimToNull(String str) 安全地对字符串进行 trim 操作,如果字符串为 null 或 trim 后为空则返回 null。
deprecated under-utils-core class since 1.0.0

LocalDateTimeUtils

com.undernine.utils.core.time.LocalDateTimeUtils

日期时间工具类(基于 Java 8+ 的 LocalDateTime)。

under-utils-core/src/main/java/com/undernine/utils/core/time/LocalDateTimeUtils.java

15 个 public/protected 成员
  • public static final String PATTERN_DATE 标准日期格式:yyyy-MM-dd
  • public static final String PATTERN_DATETIME 标准日期时间格式:yyyy-MM-dd HH:mm:ss
  • public static final String PATTERN_DATETIME_COMPACT 紧凑日期时间格式:yyyyMMddHHmmss
  • public static final String PATTERN_DATE_COMPACT 紧凑日期格式:yyyyMMdd
  • public static final String PATTERN_TIME 标准时间格式:HH:mm:ss
  • public static String format(LocalDate date) 将 LocalDate 格式化为字符串(使用标准格式 yyyy-MM-dd)。
  • public static String format(LocalDateTime dateTime) 将 LocalDateTime 格式化为字符串(使用标准格式 yyyy-MM-dd HH:mm:ss)。
  • public static String format(LocalDateTime dateTime, String pattern) 将 LocalDateTime 格式化为字符串(使用指定格式)。
  • public static String now() 获取当前日期时间的字符串表示(使用标准格式 yyyy-MM-dd HH:mm:ss)。
  • public static LocalDate parseDate(String dateStr) 解析字符串为 LocalDate(使用标准格式 yyyy-MM-dd)。
  • public static LocalDateTime parseDateTime(String dateTimeStr) 解析字符串为 LocalDateTime(使用标准格式 yyyy-MM-dd HH:mm:ss)。
  • public static LocalDateTime parseDateTime(String dateTimeStr, String pattern) 解析字符串为 LocalDateTime(使用指定格式)。
  • public static String today() 获取当前日期的字符串表示(使用标准格式 yyyy-MM-dd)。
  • public static LocalDateTime tryParseDateTime(String dateTimeStr) 安全解析字符串为 LocalDateTime,解析失败时返回 null 而不抛异常。
  • public static LocalDateTime tryParseDateTime(String dateTimeStr, String pattern) 安全解析字符串为 LocalDateTime(使用指定格式),解析失败时返回 null 而不抛异常。
deprecated under-utils-core class since 1.0.0

ValidationUtils

com.undernine.utils.core.validation.ValidationUtils

参数校验工具类。

under-utils-core/src/main/java/com/undernine/utils/core/validation/ValidationUtils.java

15 个 public/protected 成员
  • public static boolean containsChinese(String str) 校验字符串中是否包含中文字符。
  • public static boolean isAlpha(String str) 校验字符串是否只包含字母。
  • public static boolean isAlphanumeric(String str) 校验字符串是否只包含字母和数字。
  • public static boolean isChinese(String str) 校验是否全部为中文字符。
  • public static boolean isDecimal(String str) 校验是否为小数。
  • public static boolean isEmail(String email) 校验是否为有效的邮箱地址。
  • public static boolean isIdCard(String idCard) 校验是否为有效的身份证号(18 位,含校验位验证)。
  • public static boolean isInRange(Number value, Number min, Number max) 校验数值是否在指定范围内(包含边界)。
  • public static boolean isInteger(String str) 校验是否为整数(包括正负整数)。
  • public static boolean isIpv4(String ip) 校验是否为有效的 IPv4 地址。
  • public static boolean isLengthInRange(String str, int minLength, int maxLength) 校验字符串长度是否在指定范围内(包含边界)。
  • public static boolean isNumber(String str) 校验是否为数字(整数或小数)。
  • public static boolean isPhone(String phone) 校验是否为有效的中国大陆手机号(11 位)。
  • public static boolean isUrl(String url) 校验是否为有效的 URL 地址。
  • public static boolean matches(String str, String regex) 校验字符串是否符合指定的正则表达式。
stable under-utils-http class since 1.0.0

OkHttpRequestExecutor

com.undernine.utils.http.client.OkHttpRequestExecutor

OkHttp 请求执行器。

under-utils-http/src/main/java/com/undernine/utils/http/client/OkHttpRequestExecutor.java

2 个 public/protected 成员
  • public OkHttpRequestExecutor(HttpConfig config) 构造方法
  • public HttpResponse execute(HttpRequest httpRequest) 执行 HTTP 请求
stable under-utils-http class since 1.0.0

HttpConfig

com.undernine.utils.http.config.HttpConfig

HTTP 配置类

under-utils-http/src/main/java/com/undernine/utils/http/config/HttpConfig.java

8 个 public/protected 成员
  • public HttpConfig addDefaultHeader(String name, String value) 添加默认请求头
  • public static HttpConfig defaultConfig() 创建默认配置
  • public Duration getConnectTimeoutDuration() 连接超时时间。
  • public Duration getKeepAliveTimeDuration() 连接保活时间。
  • public Duration getReadTimeoutDuration() 读取超时时间。
  • public Duration getRetryIntervalDuration() 重试间隔。
  • public Duration getWriteTimeoutDuration() 写入超时时间。
  • public static class HttpConfigBuilder HTTP 配置构建器扩展。
stable under-utils-http enum since 1.0.0

HttpMethod

com.undernine.utils.http.enums.HttpMethod

HTTP 请求方法枚举

under-utils-http/src/main/java/com/undernine/utils/http/enums/HttpMethod.java

7 个 public/protected 成员
  • public static final HttpMethod DELETE DELETE 请求
  • public static final HttpMethod GET GET 请求
  • public static final HttpMethod HEAD HEAD 请求
  • public static final HttpMethod OPTIONS OPTIONS 请求
  • public static final HttpMethod PATCH PATCH 请求
  • public static final HttpMethod POST POST 请求
  • public static final HttpMethod PUT PUT 请求
stable under-utils-http class since 1.0.0

HttpException

com.undernine.utils.http.exception.HttpException

HTTP 异常基类

under-utils-http/src/main/java/com/undernine/utils/http/exception/HttpException.java

3 个 public/protected 成员
  • public HttpException(String message) 构造方法
  • public HttpException(String message, Throwable cause) 构造方法
  • public HttpException(Throwable cause) 构造方法
stable under-utils-http class since 1.0.0

HttpNetworkException

com.undernine.utils.http.exception.HttpNetworkException

HTTP 网络异常

under-utils-http/src/main/java/com/undernine/utils/http/exception/HttpNetworkException.java

2 个 public/protected 成员
  • public HttpNetworkException(String message) 构造方法
  • public HttpNetworkException(String message, Throwable cause) 构造方法
stable under-utils-http class since 1.0.0

HttpTimeoutException

com.undernine.utils.http.exception.HttpTimeoutException

HTTP 超时异常

under-utils-http/src/main/java/com/undernine/utils/http/exception/HttpTimeoutException.java

2 个 public/protected 成员
  • public HttpTimeoutException(String message) 构造方法
  • public HttpTimeoutException(String message, Throwable cause) 构造方法
stable under-utils-http interface

AccessTokenProvider

com.undernine.utils.http.openapi.AccessTokenProvider

开放平台 access token 提供者 SPI。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/AccessTokenProvider.java

2 个 public/protected 成员
  • String getAccessToken(OpenApiRequest request) 获取当前请求的 access token。
  • static AccessTokenProvider noop() 默认不提供 token。
stable under-utils-http class

ApiErrorDecodeResult

com.undernine.utils.http.openapi.ApiErrorDecodeResult

开放平台错误解码结果。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/ApiErrorDecodeResult.java

2 个 public/protected 成员
  • public static ApiErrorDecodeResult failure(String errorCode, String errorMessage, boolean retryable) 创建失败解码结果。
  • public static ApiErrorDecodeResult success() 创建成功解码结果。
stable under-utils-http interface

ApiErrorDecoder

com.undernine.utils.http.openapi.ApiErrorDecoder

开放平台错误解码 SPI。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/ApiErrorDecoder.java

3 个 public/protected 成员
  • ApiErrorDecodeResult decode(OpenApiRequest request, HttpResponse httpResponse) 解码 HTTP 响应中的成功、错误和重试语义。
  • static ApiErrorDecoder httpStatus() 默认按 HTTP 2xx 判定成功。
  • static boolean isRetryableHttpStatus(int statusCode)
stable under-utils-http class

DefaultOpenApiClient

com.undernine.utils.http.openapi.DefaultOpenApiClient

默认开放平台客户端,基于现有 HttpRequest / HttpResponse 执行请求。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/DefaultOpenApiClient.java

6 个 public/protected 成员
  • public DefaultOpenApiClient()
  • public DefaultOpenApiClient(OpenApiClientOptions options)
  • public DefaultOpenApiClient(OpenApiClientOptions options, AccessTokenProvider accessTokenProvider, RequestSigner requestSigner, ApiErrorDecoder errorDecoder)
  • public <T> OpenApiResponse<T> execute(OpenApiRequest request, Class<T> responseType)
  • public <T> OpenApiResponse<T> execute(OpenApiRequest request, TypeReference<T> typeReference)
  • public OpenApiResponse<String> execute(OpenApiRequest request)
stable under-utils-http interface

OpenApiClient

com.undernine.utils.http.openapi.OpenApiClient

开放平台调用客户端。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/OpenApiClient.java

3 个 public/protected 成员
  • <T> OpenApiResponse<T> execute(OpenApiRequest request, Class<T> responseType) 执行请求并将成功响应解析为指定类型。
  • <T> OpenApiResponse<T> execute(OpenApiRequest request, TypeReference<T> typeReference) 执行请求并将成功响应解析为指定泛型类型。
  • OpenApiResponse<String> execute(OpenApiRequest request) 执行请求并返回原始字符串数据。
stable under-utils-http class

OpenApiClientOptions

com.undernine.utils.http.openapi.OpenApiClientOptions

开放平台客户端配置。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/OpenApiClientOptions.java

6 个 public/protected 成员
  • public static OpenApiClientOptions defaultOptions() 返回默认配置。
  • public Duration getConnectTimeoutDuration() 连接超时时间。
  • public Duration getReadTimeoutDuration() 读取超时时间。
  • public Duration getRetryIntervalDuration() 重试等待间隔。
  • public Duration getWriteTimeoutDuration() 写入超时时间。
  • public static class OpenApiClientOptionsBuilder OpenAPI 客户端配置构建器扩展。
stable under-utils-http class

OpenApiException

com.undernine.utils.http.openapi.OpenApiException

开放平台调用治理异常。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/OpenApiException.java

2 个 public/protected 成员
  • public OpenApiException(String message) 构造开放平台调用治理异常。
  • public OpenApiException(String message, Throwable cause) 构造开放平台调用治理异常。
stable under-utils-http class

OpenApiRequest

com.undernine.utils.http.openapi.OpenApiRequest

开放平台请求模型。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/OpenApiRequest.java

2 个 public/protected 成员
  • public OpenApiRequest header(String name, String value) 添加或覆盖请求头,供 token、签名等治理组件使用。
  • public OpenApiRequest query(String name, String value) 添加或覆盖查询参数,供签名等治理组件使用。
stable under-utils-http class

OpenApiResponse

com.undernine.utils.http.openapi.OpenApiResponse

开放平台响应模型。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/OpenApiResponse.java

stable under-utils-http class since 1.0.1

RefreshingAccessTokenProvider

com.undernine.utils.http.openapi.RefreshingAccessTokenProvider

带本地缓存和提前刷新窗口的 access token 提供者。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/RefreshingAccessTokenProvider.java

6 个 public/protected 成员
  • public RefreshingAccessTokenProvider(TokenFetcher tokenFetcher, Duration refreshAhead) 创建 token 提供者。
  • public RefreshingAccessTokenProvider(TokenFetcher tokenFetcher, Duration refreshAhead, Clock clock) 创建 token 提供者。
  • public String getAccessToken(OpenApiRequest request)
  • public synchronized void invalidate() 清除当前缓存 token,下次请求会重新拉取。
  • public static final class AccessToken access token 值和过期时间。
  • public interface TokenFetcher token 拉取器。
stable under-utils-http interface

RequestSigner

com.undernine.utils.http.openapi.RequestSigner

开放平台请求签名 SPI。

under-utils-http/src/main/java/com/undernine/utils/http/openapi/RequestSigner.java

2 个 public/protected 成员
  • static RequestSigner noop() 默认不签名。
  • void sign(OpenApiRequest request) 对请求补充签名请求头或查询参数。
stable under-utils-http class since 1.0.0

HttpRequest

com.undernine.utils.http.request.HttpRequest

HTTP 请求构建器

under-utils-http/src/main/java/com/undernine/utils/http/request/HttpRequest.java

13 个 public/protected 成员
  • public static Builder builder() 创建构建器
  • public static Builder delete(String url) 创建 DELETE 请求构建器。
  • public HttpResponse execute() 执行请求(同步)
  • public CompletableFuture<HttpResponse> executeAsync() 执行请求(异步)
  • public static Builder get(String url) 创建 GET 请求构建器。
  • public static Builder head(String url) 创建 HEAD 请求构建器。
  • public static Builder options(String url) 创建 OPTIONS 请求构建器。
  • public static Builder patch(String url) 创建 PATCH 请求构建器。
  • public static Builder post(String url) 创建 POST 请求构建器。
  • public static Builder put(String url) 创建 PUT 请求构建器。
  • public static Builder request(String url, HttpMethod method) 创建指定方法和 URL 的请求构建器。
  • public Builder toBuilder() 基于当前请求创建构建器。
  • public static class Builder HTTP 请求构建器
stable under-utils-http class since 1.0.0

HttpResponse

com.undernine.utils.http.response.HttpResponse

HTTP 响应封装类

under-utils-http/src/main/java/com/undernine/utils/http/response/HttpResponse.java

9 个 public/protected 成员
  • public byte[] asBytes() 获取响应体字节数组
  • public <T> T asObject(Class<T> clazz) 将响应体解析为指定类型的对象
  • public <T> T asObject(TypeReference<T> typeReference) 将响应体解析为指定类型的对象(支持泛型)
  • public String asString() 获取响应体字符串
  • public String getHeader(String name) 获取指定名称的响应头
  • public boolean hasHeader(String name) 判断是否包含指定名称的响应头
  • public boolean isFail() 请求是否失败(状态码非 2xx)
  • public boolean isSuccess() 请求是否成功(状态码 2xx)
  • public void saveToFile(File file) throws IOException 将响应体保存到文件
stable under-utils-http class since 1.0.0

HttpUtils

com.undernine.utils.http.util.HttpUtils

HTTP 工具类

under-utils-http/src/main/java/com/undernine/utils/http/util/HttpUtils.java

18 个 public/protected 成员
  • public static String delete(String url) 发送 DELETE 请求
  • public static HttpResponse deleteResponse(String url) 发送 DELETE 请求并返回完整响应
  • public static void download(String url, File targetFile) 下载文件
  • public static String get(String url) 发送 GET 请求
  • public static String get(String url, Map<String, String> params) 发送 GET 请求(带参数)
  • public static String get(String url, Map<String, String> params, Map<String, String> headers) 发送 GET 请求(带请求头)
  • public static HttpConfig getDefaultConfig() 获取全局默认配置
  • public static HttpResponse getResponse(String url) 发送 GET 请求并返回完整响应
  • public static String postForm(String url, Map<String, String> formParams) 发送 POST 请求(表单格式)
  • public static String postJson(String url, Object body) 发送 POST 请求(JSON 格式)
  • public static HttpResponse postResponse(String url, Object body) 发送 POST 请求并返回完整响应
  • public static String putJson(String url, Object body) 发送 PUT 请求(JSON 格式)
  • public static HttpResponse putResponse(String url, Object body) 发送 PUT 请求并返回完整响应
  • public static void setDefaultConfig(HttpConfig config) 设置全局默认配置
  • public static String upload(String url, String name, File file) 上传文件
  • public static String upload(String url, String name, File file, Map<String, String> formParams) 上传文件(带额外参数)
  • public static String urlDecode(String value) URL 解码
  • public static String urlEncode(String value) URL 编码
stable under-utils-mybatis class since 1.0.0

MybatisPlusConfig

com.undernine.utils.mybatis.config.MybatisPlusConfig

MyBatis-Plus 配置类

under-utils-mybatis/src/main/java/com/undernine/utils/mybatis/config/MybatisPlusConfig.java

3 个 public/protected 成员
  • public static MybatisPlusInterceptor mybatisPlusInterceptor() 创建 MyBatis-Plus 拦截器(使用默认 MySQL 数据库)
  • public static MybatisPlusInterceptor mybatisPlusInterceptor(DbType dbType) 创建 MyBatis-Plus 拦截器(指定数据库类型)
  • public static PaginationInnerInterceptor paginationInterceptor(DbType dbType) 创建分页插件(独立使用)
stable under-utils-mybatis class since 1.0.0

BaseEntity

com.undernine.utils.mybatis.entity.BaseEntity

基础实体类

under-utils-mybatis/src/main/java/com/undernine/utils/mybatis/entity/BaseEntity.java

stable under-utils-mybatis interface since 1.0.0

AuditorProvider

com.undernine.utils.mybatis.handler.AuditorProvider

当前审计用户提供者。

under-utils-mybatis/src/main/java/com/undernine/utils/mybatis/handler/AuditorProvider.java

1 个 public/protected 成员
  • Long getCurrentAuditor() 获取当前审计用户 ID。
stable under-utils-mybatis class since 1.0.0

DefaultMetaObjectHandler

com.undernine.utils.mybatis.handler.DefaultMetaObjectHandler

MyBatis-Plus 元数据自动填充处理器

under-utils-mybatis/src/main/java/com/undernine/utils/mybatis/handler/DefaultMetaObjectHandler.java

5 个 public/protected 成员
  • public DefaultMetaObjectHandler()
  • public DefaultMetaObjectHandler(AuditorProvider auditorProvider)
  • protected Long getUserId() 获取当前用户 ID
  • public void insertFill(MetaObject metaObject) 插入时自动填充
  • public void updateFill(MetaObject metaObject) 更新时自动填充
deprecated under-utils-mybatis class since 1.0.0

PageQuery

com.undernine.utils.mybatis.page.PageQuery

分页查询参数

under-utils-mybatis/src/main/java/com/undernine/utils/mybatis/page/PageQuery.java

6 个 public/protected 成员
  • public <T> Page<T> buildPage() 构建 MyBatis-Plus Page 对象
  • public <T> Page<T> buildPage(List<OrderItem> defaultOrders) 构建 MyBatis-Plus Page 对象(带默认排序)
  • public static PageQuery of() 创建默认分页查询参数
  • public static PageQuery of(Long current, Long size) 创建分页查询参数
  • public PageQuery orderByAsc(String column) 添加升序排序字段
  • public PageQuery orderByDesc(String column) 添加降序排序字段
stable under-utils-mybatis class since 1.0.0

PageResult

com.undernine.utils.mybatis.page.PageResult

分页结果封装类

under-utils-mybatis/src/main/java/com/undernine/utils/mybatis/page/PageResult.java

4 个 public/protected 成员
  • public static <T> PageResult<T> empty() 创建空分页结果
  • public static <T> PageResult<T> empty(Long current, Long size) 创建空分页结果(指定分页参数)
  • public static <T> PageResult<T> of(IPage<?> page, List<T> records) 从 MyBatis-Plus IPage 转换为 PageResult(带数据转换)
  • public static <T> PageResult<T> of(IPage<T> page) 从 MyBatis-Plus IPage 转换为 PageResult
stable under-utils-mybatis class since 1.0.0

SafePageQuery

com.undernine.utils.mybatis.page.SafePageQuery

安全分页查询参数。

under-utils-mybatis/src/main/java/com/undernine/utils/mybatis/page/SafePageQuery.java

8 个 public/protected 成员
  • public <T> Page<T> buildPage(SortFieldMapping mapping) 构建 MyBatis-Plus Page 对象。
  • public <T> Page<T> buildPage(SortFieldMapping mapping, List<SortOrder> defaultOrders) 构建 MyBatis-Plus Page 对象(带默认排序)。
  • public <T> Page<T> buildPage(SortFieldMapping mapping, SortOrder[] defaultOrders) 构建 MyBatis-Plus Page 对象(带默认排序)。
  • public static SafePageQuery of() 创建默认分页查询参数。
  • public static SafePageQuery of(Long current, Long size) 创建分页查询参数。
  • public SafePageQuery orderByAsc(String field) 添加升序排序字段。
  • public SafePageQuery orderByDesc(String field) 添加降序排序字段。
  • public static class SortOrder 前端排序字段。
stable under-utils-mybatis class since 1.0.0

SortFieldMapping

com.undernine.utils.mybatis.page.SortFieldMapping

排序字段白名单映射。

under-utils-mybatis/src/main/java/com/undernine/utils/mybatis/page/SortFieldMapping.java

8 个 public/protected 成员
  • public Map<String, String> asMap() 返回不可变映射快照。
  • public OrderItem asc(String field) 创建升序排序项。
  • public static Builder builder() 创建字段映射构建器。
  • public boolean contains(String field) 是否允许指定前端字段排序。
  • public OrderItem desc(String field) 创建降序排序项。
  • public static SortFieldMapping of(Map<String, String> mappings) 创建字段映射。
  • public String toColumn(String field) 将前端字段名解析为数据库列名。
  • public static final class Builder 排序字段映射构建器。
stable under-utils-redis class since 1.0.0

CacheAsideTemplate

com.undernine.utils.redis.cache.CacheAsideTemplate

Cache-aside 访问模板。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheAsideTemplate.java

13 个 public/protected 成员
  • public CacheAsideTemplate(RedissonClient redissonClient)
  • public CacheAsideTemplate(RedissonClient redissonClient, CacheValueCodec valueCodec)
  • public CacheAsideTemplate(RedissonClient redissonClient, CacheValueCodec valueCodec, CacheOptions defaultOptions)
  • public CacheAsideTemplate(RedissonClient redissonClient, CacheValueCodec valueCodec, CacheOptions defaultOptions, CacheOperationObserver operationObserver)
  • public <T> CacheQuery<T> cache(String key, Class<T> valueType) 创建 cache-aside 链式调用。
  • public <T, E extends Throwable> T get(String key, Class<T> valueType, CacheLoadFunction<T, E> loader) throws E
  • public <T, E extends Throwable> T get(String key, Class<T> valueType, CacheOptions options, CacheLoadFunction<T, E> loader) throws E
  • public CacheMetrics getMetrics() 返回当前缓存指标快照。
  • public <T, E extends Throwable> T getOrLoad(String key, Class<T> valueType, CacheLoadFunction<T, E> loader) throws E
  • public <T, E extends Throwable> T getOrLoad(String key, Class<T> valueType, CacheOptions options, CacheLoadFunction<T, E> loader) throws E
  • public <T> CacheQuery<T> key(String key, Class<T> valueType) 创建 cache-aside 链式调用,等价于 #cache(String, Class) 。
  • public void resetMetrics() 重置内置指标计数。
  • public final class CacheQuery Cache-aside 链式调用对象。
stable under-utils-redis interface since 1.0.0

CacheLoadFunction

com.undernine.utils.redis.cache.CacheLoadFunction

缓存未命中时加载源数据的函数式接口。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheLoadFunction.java

1 个 public/protected 成员
  • T load(String key) throws E 从源数据加载数据。
stable under-utils-redis class since 1.0.2

CacheMetrics

com.undernine.utils.redis.cache.CacheMetrics

缓存操作指标快照。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheMetrics.java

15 个 public/protected 成员
  • public long getErrorCount()
  • public long getHitCount()
  • public double getHitRate()
  • public long getLoadCount()
  • public long getLoadFailureCount()
  • public long getLoadSuccessCount()
  • public long getLockAcquiredCount()
  • public long getLockRejectedCount()
  • public long getLookupCount()
  • public long getMissCount()
  • public double getMissRate()
  • public long getRefreshFailureCount()
  • public long getRefreshSubmittedCount()
  • public long getRefreshSuccessCount()
  • public long getWriteCount()
stable under-utils-redis class since 1.0.1

CacheOperationEvent

com.undernine.utils.redis.cache.CacheOperationEvent

缓存操作观测事件。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheOperationEvent.java

10 个 public/protected 成员
  • public CacheOperationEvent(CacheOperationType operationType, String key, String cacheKey, boolean nullValue, long durationNanos, Throwable error) 构造缓存操作事件。
  • public static CacheOperationEvent failed(CacheOperationType operationType, String key, String cacheKey, long durationNanos, Throwable error) 创建失败事件。
  • public String getCacheKey()
  • public long getDurationNanos()
  • public Throwable getError()
  • public String getKey()
  • public CacheOperationType getOperationType()
  • public boolean isNullValue()
  • public static CacheOperationEvent of(CacheOperationType operationType, String key, String cacheKey, boolean nullValue) 创建无耗时、无异常的事件。
  • public static CacheOperationEvent timed(CacheOperationType operationType, String key, String cacheKey, boolean nullValue, long durationNanos) 创建带耗时的事件。
stable under-utils-redis interface since 1.0.1

CacheOperationObserver

com.undernine.utils.redis.cache.CacheOperationObserver

Redis 缓存模板观测 SPI。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheOperationObserver.java

12 个 public/protected 成员
  • static CacheOperationObserver noop() 返回空 observer。
  • default void onHit(CacheOperationEvent event) 缓存命中。
  • default void onLoadFailure(CacheOperationEvent event) 源数据加载失败。
  • default void onLoadSuccess(CacheOperationEvent event) 源数据加载成功。
  • default void onLockAcquired(CacheOperationEvent event) 重建锁获取成功。
  • default void onLockRejected(CacheOperationEvent event) 重建锁获取失败。
  • default void onMiss(CacheOperationEvent event) 缓存未命中。
  • default void onRefreshFailure(CacheOperationEvent event) 逻辑过期缓存后台刷新失败。
  • default void onRefreshSubmitted(CacheOperationEvent event) 逻辑过期缓存提交后台刷新。
  • default void onRefreshSuccess(CacheOperationEvent event) 逻辑过期缓存后台刷新成功。
  • default void onWrite(CacheOperationEvent event) 缓存写入。
  • final class NoopCacheOperationObserver
stable under-utils-redis enum since 1.0.1

CacheOperationType

com.undernine.utils.redis.cache.CacheOperationType

缓存模板类型。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheOperationType.java

2 个 public/protected 成员
  • public static final CacheOperationType CACHE_ASIDE Cache-aside 读穿缓存。
  • public static final CacheOperationType LOGICAL_EXPIRE 逻辑过期缓存。
stable under-utils-redis class since 1.0.0

CacheOptions

com.undernine.utils.redis.cache.CacheOptions

Cache-aside 模板配置。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheOptions.java

16 个 public/protected 成员
  • public static Builder builder()
  • public boolean cacheNull()
  • public static CacheOptions defaults()
  • public Duration jitter()
  • public String keyPrefix()
  • public Duration lockLeaseTime()
  • public Duration lockWaitTime()
  • public Duration nullTtl()
  • public boolean nullValueCacheEnabled() 是否缓存空值占位。
  • public Duration nullValueTtl() 空值占位的 Redis TTL。
  • public boolean rebuildLockEnabled()
  • public String rebuildLockKeyPrefix()
  • public Builder toBuilder()
  • public Duration ttl()
  • public Duration valueTtl() 正常业务值的 Redis TTL。
  • public static final class Builder CacheOptions 构造器。
stable under-utils-redis class since 1.0.0

CacheRebuildLockException

com.undernine.utils.redis.cache.CacheRebuildLockException

缓存重建锁异常。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheRebuildLockException.java

2 个 public/protected 成员
  • public CacheRebuildLockException(String message)
  • public CacheRebuildLockException(String message, Throwable cause)
stable under-utils-redis interface since 1.0.0

CacheValueCodec

com.undernine.utils.redis.cache.CacheValueCodec

缓存值编解码接口。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CacheValueCodec.java

2 个 public/protected 成员
  • <T> T decode(String payload, Class<T> valueType) 将 Redis 中的字符串解码为目标类型。
  • String encode(Object value) 将对象编码为可写入 Redis 的字符串。
stable under-utils-redis class since 1.0.2

CountingCacheOperationObserver

com.undernine.utils.redis.cache.CountingCacheOperationObserver

基于 LongAdder 的缓存操作指标聚合器。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/CountingCacheOperationObserver.java

12 个 public/protected 成员
  • public void onHit(CacheOperationEvent event)
  • public void onLoadFailure(CacheOperationEvent event)
  • public void onLoadSuccess(CacheOperationEvent event)
  • public void onLockAcquired(CacheOperationEvent event)
  • public void onLockRejected(CacheOperationEvent event)
  • public void onMiss(CacheOperationEvent event)
  • public void onRefreshFailure(CacheOperationEvent event)
  • public void onRefreshSubmitted(CacheOperationEvent event)
  • public void onRefreshSuccess(CacheOperationEvent event)
  • public void onWrite(CacheOperationEvent event)
  • public void reset() 重置所有计数。
  • public CacheMetrics snapshot() 返回当前计数快照。
stable under-utils-redis class since 1.0.0

JacksonCacheValueCodec

com.undernine.utils.redis.cache.JacksonCacheValueCodec

基于 Jackson 的缓存值编解码实现。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/JacksonCacheValueCodec.java

4 个 public/protected 成员
  • public JacksonCacheValueCodec()
  • public JacksonCacheValueCodec(ObjectMapper objectMapper)
  • public <T> T decode(String payload, Class<T> valueType)
  • public String encode(Object value)
stable under-utils-redis class since 1.0.0

LogicalExpireCacheOptions

com.undernine.utils.redis.cache.LogicalExpireCacheOptions

逻辑过期缓存模板配置。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/LogicalExpireCacheOptions.java

14 个 public/protected 成员
  • public static Builder builder()
  • public boolean cacheNull()
  • public static LogicalExpireCacheOptions defaults()
  • public String keyPrefix()
  • public Duration lockLeaseTime()
  • public Duration lockWaitTime()
  • public Duration logicalTtl()
  • public boolean nullValueCacheEnabled() 是否缓存空值占位。
  • public Duration physicalTtl()
  • public String rebuildLockKeyPrefix()
  • public Executor refreshExecutor()
  • public LogicalExpireCacheRefreshFailureHandler refreshFailureHandler()
  • public Builder toBuilder()
  • public static final class Builder LogicalExpireCacheOptions 构造器。
stable under-utils-redis interface since 1.0.0

LogicalExpireCacheRefreshFailureHandler

com.undernine.utils.redis.cache.LogicalExpireCacheRefreshFailureHandler

逻辑过期缓存后台刷新失败处理器。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/LogicalExpireCacheRefreshFailureHandler.java

1 个 public/protected 成员
  • void handle(String key, String cacheKey, Throwable error) 处理后台刷新异常。
stable under-utils-redis class since 1.0.0

LogicalExpireCacheTemplate

com.undernine.utils.redis.cache.LogicalExpireCacheTemplate

逻辑过期缓存访问模板。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/LogicalExpireCacheTemplate.java

13 个 public/protected 成员
  • public LogicalExpireCacheTemplate(RedissonClient redissonClient)
  • public LogicalExpireCacheTemplate(RedissonClient redissonClient, CacheValueCodec valueCodec)
  • public LogicalExpireCacheTemplate(RedissonClient redissonClient, CacheValueCodec valueCodec, LogicalExpireCacheOptions defaultOptions)
  • public LogicalExpireCacheTemplate(RedissonClient redissonClient, CacheValueCodec valueCodec, LogicalExpireCacheOptions defaultOptions, CacheOperationObserver operationObserver)
  • public <T> LogicalCacheQuery<T> cache(String key, Class<T> valueType) 创建逻辑过期缓存链式调用。
  • public <T, E extends Throwable> T get(String key, Class<T> valueType, CacheLoadFunction<T, E> loader) throws E
  • public <T, E extends Throwable> T get(String key, Class<T> valueType, LogicalExpireCacheOptions options, CacheLoadFunction<T, E> loader) throws E
  • public CacheMetrics getMetrics() 返回当前缓存指标快照。
  • public <T, E extends Throwable> T getOrLoad(String key, Class<T> valueType, CacheLoadFunction<T, E> loader) throws E
  • public <T, E extends Throwable> T getOrLoad(String key, Class<T> valueType, LogicalExpireCacheOptions options, CacheLoadFunction<T, E> loader) throws E
  • public <T> LogicalCacheQuery<T> key(String key, Class<T> valueType) 创建逻辑过期缓存链式调用,等价于 #cache(String, Class) 。
  • public void resetMetrics() 重置内置指标计数。
  • public final class LogicalCacheQuery 逻辑过期缓存链式调用对象。
stable under-utils-redis class since 1.0.2

MicrometerCacheOperationObserver

com.undernine.utils.redis.cache.MicrometerCacheOperationObserver

将缓存操作事件桥接到 Micrometer 的 observer。

under-utils-redis/src/main/java/com/undernine/utils/redis/cache/MicrometerCacheOperationObserver.java

16 个 public/protected 成员
  • public MicrometerCacheOperationObserver(MeterRegistry meterRegistry)
  • public MicrometerCacheOperationObserver(MeterRegistry meterRegistry, ObservationRegistry observationRegistry)
  • public MicrometerCacheOperationObserver(MeterRegistry meterRegistry, ObservationRegistry observationRegistry, String counterName, String timerName, String observationName)
  • public static final String DEFAULT_COUNTER_NAME
  • public static final String DEFAULT_OBSERVATION_NAME
  • public static final String DEFAULT_TIMER_NAME
  • public void onHit(CacheOperationEvent event)
  • public void onLoadFailure(CacheOperationEvent event)
  • public void onLoadSuccess(CacheOperationEvent event)
  • public void onLockAcquired(CacheOperationEvent event)
  • public void onLockRejected(CacheOperationEvent event)
  • public void onMiss(CacheOperationEvent event)
  • public void onRefreshFailure(CacheOperationEvent event)
  • public void onRefreshSubmitted(CacheOperationEvent event)
  • public void onRefreshSuccess(CacheOperationEvent event)
  • public void onWrite(CacheOperationEvent event)
stable under-utils-redis class since 1.0.0

DistributedLockException

com.undernine.utils.redis.lock.DistributedLockException

分布式锁异常。

under-utils-redis/src/main/java/com/undernine/utils/redis/lock/DistributedLockException.java

2 个 public/protected 成员
  • public DistributedLockException(String message)
  • public DistributedLockException(String message, Throwable cause)
stable under-utils-redis class since 1.0.0

DistributedLockTemplate

com.undernine.utils.redis.lock.DistributedLockTemplate

Redisson 分布式锁模板。

under-utils-redis/src/main/java/com/undernine/utils/redis/lock/DistributedLockTemplate.java

4 个 public/protected 成员
  • public DistributedLockTemplate(RedissonClient redissonClient)
  • public DistributedLockTemplate(RedissonClient redissonClient, String keyPrefix)
  • public <T> T execute(String key, long waitTime, long leaseTime, TimeUnit unit, Supplier<T> supplier) 获取锁并执行任务。
  • public void execute(String key, long waitTime, long leaseTime, TimeUnit unit, Runnable runnable) 获取锁并执行无返回值任务。
stable under-utils-redis class since 1.0.0

RedisRateLimitStore

com.undernine.utils.redis.ratelimit.RedisRateLimitStore

基于 Redisson 的分布式限流存储。

under-utils-redis/src/main/java/com/undernine/utils/redis/ratelimit/RedisRateLimitStore.java

3 个 public/protected 成员
  • public RedisRateLimitStore(RedissonClient redissonClient)
  • public RedisRateLimitStore(RedissonClient redissonClient, String keyPrefix)
  • public boolean tryAcquire(String key, int limit, Duration window)
stable under-utils-redis class since 1.0.0

RedisRepeatSubmitStore

com.undernine.utils.redis.repeat.RedisRepeatSubmitStore

基于 Redisson 的分布式防重复提交存储。

under-utils-redis/src/main/java/com/undernine/utils/redis/repeat/RedisRepeatSubmitStore.java

4 个 public/protected 成员
  • public RedisRepeatSubmitStore(RedissonClient redissonClient)
  • public RedisRepeatSubmitStore(RedissonClient redissonClient, String keyPrefix)
  • public boolean acquire(String key, Duration ttl)
  • public void release(String key)
stable under-utils-redis-starter class since 1.0.2

UnderUtilsRedisAutoConfiguration

com.undernine.utils.starter.autoconfigure.UnderUtilsRedisAutoConfiguration

Under-Utils Redis 自动配置入口。

under-utils-redis-starter/src/main/java/com/undernine/utils/starter/autoconfigure/UnderUtilsRedisAutoConfiguration.java

9 个 public/protected 成员
  • public CacheAsideTemplate cacheAsideTemplate(RedissonClient redissonClient, CacheValueCodec cacheValueCodec, CacheOptions cacheOptions, ObjectProvider<CacheOperationObserver> operationObserver)
  • public CacheOptions cacheOptions(UnderUtilsProperties properties)
  • public CacheValueCodec cacheValueCodec()
  • public DistributedLockTemplate distributedLockTemplate(RedissonClient redissonClient, UnderUtilsProperties properties)
  • public LogicalExpireCacheOptions logicalExpireCacheOptions(UnderUtilsProperties properties, Executor refreshExecutor, ObjectProvider<LogicalExpireCacheRefreshFailureHandler> refreshFailureHandler)
  • public LogicalExpireCacheTemplate logicalExpireCacheTemplate(RedissonClient redissonClient, CacheValueCodec cacheValueCodec, LogicalExpireCacheOptions logicalExpireCacheOptions, ObjectProvider<CacheOperationObserver> operationObserver)
  • public RateLimitStore redisRateLimitStore(RedissonClient redissonClient)
  • public RepeatSubmitStore redisRepeatSubmitStore(RedissonClient redissonClient)
  • public ThreadPoolTaskExecutor underUtilsLogicalCacheRefreshExecutor(UnderUtilsProperties properties)
deprecated under-utils-spring annotation since 1.0.0

OperationLog

com.undernine.utils.spring.annotation.OperationLog

操作日志注解。

under-utils-spring/src/main/java/com/undernine/utils/spring/annotation/OperationLog.java

5 个 public/protected 成员
  • String content() 操作内容描述
  • String module() 业务模块
  • boolean recordParams() 是否记录请求参数
  • boolean recordResult() 是否记录返回结果
  • OperationType type() 操作类型
stable under-utils-spring annotation since 1.0.0

PreventRepeat

com.undernine.utils.spring.annotation.PreventRepeat

防重复提交注解。

under-utils-spring/src/main/java/com/undernine/utils/spring/annotation/PreventRepeat.java

6 个 public/protected 成员
  • String key() 防重复提交 key 表达式。
  • String message() 判定为重复提交时抛出的业务异常消息。
  • String namespace() 防重复提交命名空间。
  • boolean releaseOnFailure() 业务方法执行失败时是否释放 key。
  • TimeUnit timeUnit() 时间单位
  • long timeout() 防重复提交判定窗口。
stable under-utils-spring annotation since 1.0.0

RateLimit

com.undernine.utils.spring.annotation.RateLimit

接口限流注解。

under-utils-spring/src/main/java/com/undernine/utils/spring/annotation/RateLimit.java

5 个 public/protected 成员
  • String key() 限流 key 表达式。
  • int limit() 时间窗口内允许通过的次数。
  • String message() 超过限流额度时抛出的业务异常消息。
  • String namespace() 限流命名空间。
  • int period() 时间窗口,单位秒。
deprecated under-utils-spring annotation since 1.0.0

Retry

com.undernine.utils.spring.annotation.Retry

重试机制注解。

under-utils-spring/src/main/java/com/undernine/utils/spring/annotation/Retry.java

3 个 public/protected 成员
  • long delay() 重试延迟(毫秒)
  • Class<? extends Throwable>[] exceptions() 需要重试的异常类型
  • int maxAttempts() 最大重试次数
stable under-utils-spring annotation since 1.0.0

Sensitive

com.undernine.utils.spring.annotation.Sensitive

敏感信息脱敏注解

under-utils-spring/src/main/java/com/undernine/utils/spring/annotation/Sensitive.java

2 个 public/protected 成员
  • String customRule() 自定义脱敏规则(当type为CUSTOM时有效)
  • SensitiveType type() 脱敏类型
deprecated under-utils-spring annotation since 1.0.0

TimeLog

com.undernine.utils.spring.aop.TimeLog

方法执行时间统计注解。

under-utils-spring/src/main/java/com/undernine/utils/spring/aop/TimeLog.java

2 个 public/protected 成员
  • long slowThreshold() 慢方法阈值(单位:毫秒)
  • String value() 操作描述
deprecated under-utils-spring class since 1.0.0

TimeLogAspect

com.undernine.utils.spring.aop.TimeLogAspect

方法执行时间统计切面

under-utils-spring/src/main/java/com/undernine/utils/spring/aop/TimeLogAspect.java

1 个 public/protected 成员
  • public Object around(ProceedingJoinPoint joinPoint, TimeLog timeLog) throws Throwable 环绕通知:统计方法执行时间
deprecated under-utils-spring class since 1.0.0

OperationLogAspect

com.undernine.utils.spring.aspect.OperationLogAspect

操作日志切面。

under-utils-spring/src/main/java/com/undernine/utils/spring/aspect/OperationLogAspect.java

1 个 public/protected 成员
  • public Object around(ProceedingJoinPoint point, OperationLog operationLog) throws Throwable
stable under-utils-spring class since 1.0.0

PreventRepeatAspect

com.undernine.utils.spring.aspect.PreventRepeatAspect

防重复提交切面。

under-utils-spring/src/main/java/com/undernine/utils/spring/aspect/PreventRepeatAspect.java

4 个 public/protected 成员
  • public Object around(ProceedingJoinPoint point, PreventRepeat preventRepeat) throws Throwable
  • public synchronized void close()
  • public void setOperationKeyResolver(OperationKeyResolver operationKeyResolver)
  • public synchronized void setRepeatSubmitStore(RepeatSubmitStore repeatSubmitStore)
stable under-utils-spring class since 1.0.0

RateLimitAspect

com.undernine.utils.spring.aspect.RateLimitAspect

接口限流切面。

under-utils-spring/src/main/java/com/undernine/utils/spring/aspect/RateLimitAspect.java

4 个 public/protected 成员
  • public Object around(ProceedingJoinPoint point, RateLimit rateLimit) throws Throwable
  • public synchronized void close()
  • public void setOperationKeyResolver(OperationKeyResolver operationKeyResolver)
  • public synchronized void setRateLimitStore(RateLimitStore rateLimitStore)
deprecated under-utils-spring class since 1.0.0

RetryAspect

com.undernine.utils.spring.aspect.RetryAspect

重试机制切面。

under-utils-spring/src/main/java/com/undernine/utils/spring/aspect/RetryAspect.java

1 个 public/protected 成员
  • public Object around(ProceedingJoinPoint point, Retry retry) throws Throwable
stable under-utils-spring interface since 1.0.0

CurrentTenantProvider

com.undernine.utils.spring.context.CurrentTenantProvider

当前租户提供器。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/CurrentTenantProvider.java

1 个 public/protected 成员
  • String getCurrentTenantId() 获取当前租户标识。
stable under-utils-spring interface since 1.0.0

CurrentUserProvider

com.undernine.utils.spring.context.CurrentUserProvider

当前用户提供器。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/CurrentUserProvider.java

1 个 public/protected 成员
  • String getCurrentUserId() 获取当前用户标识。
stable under-utils-spring class since 1.0.0

DefaultCurrentTenantProvider

com.undernine.utils.spring.context.DefaultCurrentTenantProvider

默认当前租户提供器。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/DefaultCurrentTenantProvider.java

1 个 public/protected 成员
  • public String getCurrentTenantId()
stable under-utils-spring class since 1.0.0

DefaultCurrentUserProvider

com.undernine.utils.spring.context.DefaultCurrentUserProvider

默认当前用户提供器。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/DefaultCurrentUserProvider.java

1 个 public/protected 成员
  • public String getCurrentUserId()
stable under-utils-spring class since 1.0.0

DefaultTraceIdProvider

com.undernine.utils.spring.context.DefaultTraceIdProvider

默认链路 ID 提供器。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/DefaultTraceIdProvider.java

1 个 public/protected 成员
  • public String getTraceId()
stable under-utils-spring class since 1.0.0

OperationContext

com.undernine.utils.spring.context.OperationContext

当前操作上下文。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/OperationContext.java

16 个 public/protected 成员
  • public static Builder builder() 创建上下文构建器。
  • public static Builder from(OperationContext context) 基于已有上下文创建构建器。
  • public <T> T getAttribute(String name, Class<T> type)
  • public Object getAttribute(String name)
  • public Map<String, Object> getAttributes()
  • public String getClientIp()
  • public String getOperationName()
  • public String getRequestMethod()
  • public String getRequestUri()
  • public String getTenantId()
  • public String getTraceId()
  • public String getUserId()
  • public Builder toBuilder() 复制当前上下文到构建器。
  • public OperationContext withAttribute(String name, Object value) 追加或覆盖单个扩展属性。
  • public OperationContext withOperationName(String operationName) 覆盖当前操作名称。
  • public static final class Builder OperationContext 构建器。
stable under-utils-spring interface since 1.0.0

OperationContextCustomizer

com.undernine.utils.spring.context.OperationContextCustomizer

操作上下文自定义扩展点。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/OperationContextCustomizer.java

1 个 public/protected 成员
  • void customize(OperationContext.Builder builder, HttpServletRequest request) 自定义操作上下文。
stable under-utils-spring class since 1.0.0

OperationContextExecutors

com.undernine.utils.spring.context.OperationContextExecutors

支持 OperationContext 传播的执行器包装工具。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/OperationContextExecutors.java

2 个 public/protected 成员
  • public static Executor wrap(Executor executor) 包装普通 Executor,使每次 execute 时捕获当前线程上下文。
  • public static ExecutorService wrap(ExecutorService executorService) 包装 ExecutorService,使提交的任务自动传播当前线程上下文。
stable under-utils-spring class since 1.0.0

OperationContextFilter

com.undernine.utils.spring.context.OperationContextFilter

HTTP 请求操作上下文过滤器。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/OperationContextFilter.java

14 个 public/protected 成员
  • public OperationContextFilter()
  • public OperationContextFilter(Collection<OperationContextCustomizer> customizers)
  • public static final String TENANT_ID_HEADER
  • public static final String TRACE_ID_HEADER
  • public static final String TRACE_ID_MDC_KEY
  • public static final String USER_ID_HEADER
  • protected OperationContext buildContext(HttpServletRequest request)
  • public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
  • protected String generateTraceId()
  • protected String resolveClientIp(HttpServletRequest request)
  • protected String resolveTenantId(HttpServletRequest request)
  • protected String resolveTraceId(HttpServletRequest request)
  • protected String resolveUserId(HttpServletRequest request)
  • public void setCustomizers(Collection<OperationContextCustomizer> customizers)
stable under-utils-spring class since 1.0.0

OperationContextHolder

com.undernine.utils.spring.context.OperationContextHolder

当前线程操作上下文持有器。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/OperationContextHolder.java

6 个 public/protected 成员
  • public static void clear() 清理当前线程上下文。
  • public static OperationContext current() 获取当前线程上下文。
  • public static OperationContext getContext() 获取当前线程上下文。
  • public static Scope scope(OperationContext context) 创建上下文作用域。
  • public static void setContext(OperationContext context) 设置当前线程上下文。
  • public static final class Scope 当前上下文作用域。
stable under-utils-spring class since 1.0.0

OperationContextSnapshot

com.undernine.utils.spring.context.OperationContextSnapshot

OperationContext 快照。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/OperationContextSnapshot.java

9 个 public/protected 成员
  • public static OperationContextSnapshot capture() 捕获当前线程上下文。
  • public static OperationContextSnapshot empty() 创建空上下文快照。
  • public OperationContext getContext() 获取快照内的上下文。
  • public boolean hasContext() 判断快照是否包含上下文。
  • public static OperationContextSnapshot of(OperationContext context) 基于指定上下文创建快照。
  • public OperationContextHolder.Scope openScope() 打开快照上下文作用域。
  • public <T> Callable<T> wrap(Callable<T> task) 包装 Callable 任务。
  • public Runnable wrap(Runnable task) 包装 Runnable 任务。
  • public <T> Supplier<T> wrapSupplier(Supplier<T> supplier) 包装 Supplier 任务。
stable under-utils-spring class since 1.0.0

OperationContextTaskDecorator

com.undernine.utils.spring.context.OperationContextTaskDecorator

传播 OperationContext 的 Spring TaskDecorator 。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/OperationContextTaskDecorator.java

1 个 public/protected 成员
  • public Runnable decorate(Runnable runnable)
stable under-utils-spring class since 1.0.0

SpringContextHolder

com.undernine.utils.spring.context.SpringContextHolder

Spring 上下文持有者

under-utils-spring/src/main/java/com/undernine/utils/spring/context/SpringContextHolder.java

13 个 public/protected 成员
  • public static boolean containsBean(String name) 判断是否包含指定名称的 Bean
  • public static String[] getActiveProfiles() 获取激活的 Profile
  • public static ApplicationContext getApplicationContext() 获取 Spring 应用上下文
  • public static <T> T getBean(Class<T> clazz) 根据类型获取 Bean
  • public static <T> T getBean(String name, Class<T> clazz) 根据名称和类型获取 Bean
  • public static Object getBean(String name) 根据名称获取 Bean
  • public static <T> T getProperty(String key, Class<T> targetType) 获取配置属性(指定类型)
  • public static <T> T getProperty(String key, Class<T> targetType, T defaultValue) 获取配置属性(指定类型,带默认值)
  • public static String getProperty(String key) 获取配置属性
  • public static String getProperty(String key, String defaultValue) 获取配置属性(带默认值)
  • public static Class<?> getType(String name) 获取指定名称的 Bean 类型
  • public static boolean isSingleton(String name) 判断指定名称的 Bean 是否为单例
  • public void setApplicationContext(ApplicationContext applicationContext) throws BeansException 设置 Spring 应用上下文
stable under-utils-spring interface since 1.0.0

TraceIdProvider

com.undernine.utils.spring.context.TraceIdProvider

链路追踪 ID 提供器。

under-utils-spring/src/main/java/com/undernine/utils/spring/context/TraceIdProvider.java

1 个 public/protected 成员
  • String getTraceId() 获取当前链路 ID。
stable under-utils-spring enum since 1.0.0

OperationType

com.undernine.utils.spring.enums.OperationType

操作类型枚举

under-utils-spring/src/main/java/com/undernine/utils/spring/enums/OperationType.java

10 个 public/protected 成员
  • public static final OperationType CREATE 新增
  • public static final OperationType DELETE 删除
  • public static final OperationType EXPORT 导出
  • public static final OperationType IMPORT 导入
  • public static final OperationType LOGIN 登录
  • public static final OperationType LOGOUT 登出
  • public static final OperationType OTHER 其他
  • public static final OperationType QUERY 查询
  • public static final OperationType UPDATE 修改
  • public String getDescription()
stable under-utils-spring enum since 1.0.0

SensitiveType

com.undernine.utils.spring.enums.SensitiveType

敏感信息类型枚举

under-utils-spring/src/main/java/com/undernine/utils/spring/enums/SensitiveType.java

10 个 public/protected 成员
  • public static final SensitiveType ADDRESS 地址:北京市海淀区******
  • public static final SensitiveType BANK_CARD 银行卡号:6222 **** **** 1234
  • public static final SensitiveType CAR_LICENSE 车牌号:京A·****1
  • public static final SensitiveType CHINESE_NAME 姓名:张*
  • public static final SensitiveType CUSTOM 自定义规则
  • public static final SensitiveType EMAIL 邮箱:a***@example.com
  • public static final SensitiveType FIXED_PHONE 固定电话:010-****5678
  • public static final SensitiveType ID_CARD 身份证号:320***********1234
  • public static final SensitiveType MOBILE_PHONE 手机号:138****5678
  • public static final SensitiveType PASSWORD 密码:*** (完全隐藏)
stable under-utils-spring class since 1.0.0

BizException

com.undernine.utils.spring.exception.BizException

业务异常类

under-utils-spring/src/main/java/com/undernine/utils/spring/exception/BizException.java

7 个 public/protected 成员
  • public BizException(Integer code, String message) 构造方法(自定义状态码和消息)
  • public BizException(Integer code, String message, Throwable cause) 构造方法(带原因异常和状态码)
  • public BizException(ResultCode resultCode) 构造方法(使用状态码枚举)
  • public BizException(ResultCode resultCode, String message) 构造方法(使用状态码枚举,覆盖消息)
  • public BizException(String message) 构造方法(使用默认业务错误码)
  • public BizException(String message, Throwable cause) 构造方法(带原因异常)
  • public String getMessage()
stable under-utils-spring class since 1.0.0

GlobalExceptionHandler

com.undernine.utils.spring.exception.GlobalExceptionHandler

全局异常处理器

under-utils-spring/src/main/java/com/undernine/utils/spring/exception/GlobalExceptionHandler.java

8 个 public/protected 成员
  • public Result<?> handleBindException(BindException e) 处理参数绑定异常
  • public Result<?> handleBizException(BizException e) 处理业务异常
  • public Result<?> handleException(Exception e) 处理其他未捕获的异常
  • public Result<?> handleIllegalArgumentException(IllegalArgumentException e) 处理非法参数异常
  • public Result<?> handleMethodNotSupportedException(HttpRequestMethodNotSupportedException e) 处理请求方法不支持异常
  • public Result<?> handleNotFoundException(NoHandlerFoundException e) 处理 404 异常
  • public Result<?> handleNullPointerException(NullPointerException e) 处理空指针异常
  • public Result<?> handleValidException(MethodArgumentNotValidException e) 处理参数校验异常(@Valid)
stable under-utils-spring class since 1.0.0

RequestLogInterceptor

com.undernine.utils.spring.interceptor.RequestLogInterceptor

HTTP请求日志拦截器

under-utils-spring/src/main/java/com/undernine/utils/spring/interceptor/RequestLogInterceptor.java

2 个 public/protected 成员
  • public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
  • public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
stable under-utils-spring class since 1.0.0

DefaultOperationKeyResolver

com.undernine.utils.spring.key.DefaultOperationKeyResolver

默认操作 key 解析器。

under-utils-spring/src/main/java/com/undernine/utils/spring/key/DefaultOperationKeyResolver.java

4 个 public/protected 成员
  • public DefaultOperationKeyResolver()
  • public DefaultOperationKeyResolver(CurrentUserProvider currentUserProvider, CurrentTenantProvider currentTenantProvider)
  • public DefaultOperationKeyResolver(CurrentUserProvider currentUserProvider, CurrentTenantProvider currentTenantProvider, TraceIdProvider traceIdProvider)
  • public String resolve(ProceedingJoinPoint point, String namespace, String expression)
stable under-utils-spring interface since 1.0.0

OperationKeyResolver

com.undernine.utils.spring.key.OperationKeyResolver

横切能力 key 解析器。

under-utils-spring/src/main/java/com/undernine/utils/spring/key/OperationKeyResolver.java

1 个 public/protected 成员
  • String resolve(ProceedingJoinPoint point, String namespace, String expression) 解析操作 key。
stable under-utils-spring class since 1.0.0

LocalRateLimitStore

com.undernine.utils.spring.ratelimit.LocalRateLimitStore

JVM 本地限流存储。

under-utils-spring/src/main/java/com/undernine/utils/spring/ratelimit/LocalRateLimitStore.java

6 个 public/protected 成员
  • public LocalRateLimitStore()
  • public LocalRateLimitStore(int maxCounters)
  • public LocalRateLimitStore(int maxCounters, Duration cleanupInterval)
  • public void clear() 清空本地状态,主要用于测试或主动重置。
  • public void close()
  • public boolean tryAcquire(String key, int limit, Duration window)
stable under-utils-spring interface since 1.0.0

RateLimitStore

com.undernine.utils.spring.ratelimit.RateLimitStore

限流存储接口。

under-utils-spring/src/main/java/com/undernine/utils/spring/ratelimit/RateLimitStore.java

1 个 public/protected 成员
  • boolean tryAcquire(String key, int limit, Duration window) 尝试获取一次访问额度。
stable under-utils-spring class since 1.0.0

LocalRepeatSubmitStore

com.undernine.utils.spring.repeat.LocalRepeatSubmitStore

JVM 本地防重复提交存储。

under-utils-spring/src/main/java/com/undernine/utils/spring/repeat/LocalRepeatSubmitStore.java

7 个 public/protected 成员
  • public LocalRepeatSubmitStore()
  • public LocalRepeatSubmitStore(int maxEntries)
  • public LocalRepeatSubmitStore(int maxEntries, Duration cleanupInterval)
  • public boolean acquire(String key, Duration ttl)
  • public void clear() 清空本地状态,主要用于测试或主动重置。
  • public void close()
  • public void release(String key)
stable under-utils-spring interface since 1.0.0

RepeatSubmitStore

com.undernine.utils.spring.repeat.RepeatSubmitStore

防重复提交存储接口。

under-utils-spring/src/main/java/com/undernine/utils/spring/repeat/RepeatSubmitStore.java

2 个 public/protected 成员
  • boolean acquire(String key, Duration ttl) 尝试登记一次提交。
  • default void release(String key) 释放登记。
stable under-utils-spring class since 1.0.0

Result

com.undernine.utils.spring.result.Result

统一响应结果封装

under-utils-spring/src/main/java/com/undernine/utils/spring/result/Result.java

9 个 public/protected 成员
  • public static <T> Result<T> fail() 失败响应(默认消息)
  • public static <T> Result<T> fail(Integer code, String message) 失败响应(自定义状态码和消息)
  • public static <T> Result<T> fail(ResultCode resultCode) 失败响应(使用 ResultCode 枚举)
  • public static <T> Result<T> fail(String message) 失败响应(自定义消息)
  • public boolean isFail() 判断是否失败
  • public boolean isSuccess() 判断是否成功
  • public static <T> Result<T> success() 成功响应(无数据)
  • public static <T> Result<T> success(T data) 成功响应(有数据)
  • public static <T> Result<T> success(T data, String message) 成功响应(有数据和自定义消息)
stable under-utils-spring enum since 1.0.0

ResultCode

com.undernine.utils.spring.result.ResultCode

响应状态码枚举

under-utils-spring/src/main/java/com/undernine/utils/spring/result/ResultCode.java

20 个 public/protected 成员
  • public static final ResultCode BUSINESS_ERROR 业务异常
  • public static final ResultCode CREATED 已创建
  • public static final ResultCode DATA_ALREADY_EXISTS 数据已存在
  • public static final ResultCode DATA_NOT_FOUND 数据不存在
  • public static final ResultCode DATA_STATUS_ERROR 数据状态异常
  • public static final ResultCode FAIL 通用失败
  • public static final ResultCode FORBIDDEN 无权限
  • public static final ResultCode INTERNAL_SERVER_ERROR 服务器内部错误
  • public static final ResultCode METHOD_NOT_ALLOWED 请求方法不支持
  • public static final ResultCode NOT_FOUND 资源不存在
  • public static final ResultCode OPERATION_TOO_FREQUENT 操作频繁
  • public static final ResultCode PARAM_ERROR 参数错误
  • public static final ResultCode REQUEST_TIMEOUT 请求超时
  • public static final ResultCode SERVICE_UNAVAILABLE 服务暂不可用
  • public static final ResultCode SUCCESS 成功
  • public static final ResultCode TOO_MANY_REQUESTS 请求过于频繁
  • public static final ResultCode UNAUTHORIZED 未授权
  • public static final ResultCode VALIDATION_ERROR 参数校验失败
  • public Integer getCode() 获取状态码
  • public String getMessage() 获取消息
stable under-utils-spring class since 1.0.0

SensitiveJsonSerializer

com.undernine.utils.spring.serializer.SensitiveJsonSerializer

敏感信息JSON序列化器

under-utils-spring/src/main/java/com/undernine/utils/spring/serializer/SensitiveJsonSerializer.java

4 个 public/protected 成员
  • public SensitiveJsonSerializer()
  • public SensitiveJsonSerializer(SensitiveType type, String customRule)
  • public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) throws JsonMappingException
  • public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException
stable under-utils-spring class since 1.0.0

DesensitizeUtils

com.undernine.utils.spring.util.DesensitizeUtils

敏感信息脱敏工具类

under-utils-spring/src/main/java/com/undernine/utils/spring/util/DesensitizeUtils.java

11 个 public/protected 成员
  • public static String address(String address) 地址脱敏:北京市海淀区******
  • public static String bankCard(String cardNo) 银行卡号脱敏:6222 **** **** 1234
  • public static String carLicense(String license) 车牌号脱敏:京A·****1
  • public static String chineseName(String name) 中文姓名脱敏:张*、欧阳**
  • public static String desensitize(String value, SensitiveType type) 根据类型脱敏
  • public static String desensitizeCustom(String value, String customRule) 自定义规则脱敏
  • public static String email(String email) 邮箱脱敏:a***@example.com
  • public static String fixedPhone(String phone) 固定电话脱敏:010-****5678
  • public static String idCard(String idCard) 身份证号脱敏:320***********1234
  • public static String mobilePhone(String phone) 手机号脱敏:138****5678
  • public static String password(String password) 密码完全脱敏:***
stable under-utils-spring-starter class since 1.0.2

UnderUtilsSpringAutoConfiguration

com.undernine.utils.starter.autoconfigure.UnderUtilsSpringAutoConfiguration

Under-Utils Spring 自动配置入口。

under-utils-spring-starter/src/main/java/com/undernine/utils/starter/autoconfigure/UnderUtilsSpringAutoConfiguration.java

9 个 public/protected 成员
  • public CurrentTenantProvider currentTenantProvider()
  • public CurrentUserProvider currentUserProvider()
  • public OperationContextFilter operationContextFilter(Collection<OperationContextCustomizer> customizers)
  • public OperationContextTaskDecorator operationContextTaskDecorator()
  • public OperationKeyResolver operationKeyResolver(CurrentUserProvider currentUserProvider, CurrentTenantProvider currentTenantProvider)
  • public PreventRepeatAspect preventRepeatAspect(RepeatSubmitStore repeatSubmitStore, OperationKeyResolver operationKeyResolver)
  • public RateLimitAspect rateLimitAspect(RateLimitStore rateLimitStore, OperationKeyResolver operationKeyResolver)
  • public TraceIdProvider traceIdProvider()
  • public FilterRegistrationBean<OperationContextFilter> underUtilsOperationContextFilterRegistration(OperationContextFilter operationContextFilter, UnderUtilsProperties properties)
stable under-utils-spring-starter class since 1.0.0

UnderUtilsProperties

com.undernine.utils.starter.properties.UnderUtilsProperties

Under-Utils 自动配置属性。

under-utils-spring-starter/src/main/java/com/undernine/utils/starter/properties/UnderUtilsProperties.java

11 个 public/protected 成员
  • public Redis getRedis()
  • public Web getWeb()
  • public void setRedis(Redis redis)
  • public void setWeb(Web web)
  • public static class Cache Redis cache-aside 缓存治理配置。
  • public static class LogicalCache Redis 逻辑过期缓存配置。
  • public static class OperationContext 请求操作上下文配置。
  • public static class Redis Redis 能力配置。
  • public static class StoreCapability 可切换存储的能力配置。
  • public enum StoreType 状态存储类型。
  • public static class Web Web 横切能力配置。
deprecated under-utils-starter class since 1.0.0

UnderUtilsAutoConfiguration

com.undernine.utils.starter.autoconfigure.UnderUtilsAutoConfiguration

兼容旧 starter 坐标的自动配置入口占位类。

under-utils-starter/src/main/java/com/undernine/utils/starter/autoconfigure/UnderUtilsAutoConfiguration.java