Class OpenId
java.lang.Object
cloud.opencode.base.id.OpenId
ID Utility Facade Class
ID工具门面类
Provides a unified, simple API for generating various types of unique identifiers. This is the main entry point for all ID generation operations.
提供统一、简洁的API来生成各种类型的唯一标识符。 这是所有ID生成操作的主入口。
Supported ID Types | 支持的ID类型:
- Snowflake - 64-bit time-ordered | 64位时间有序
- UUID v4/v7 - 128-bit universal | 128位通用
- ULID - 128-bit lexicographically sortable | 128位字典序可排序
- TSID - 64-bit time-sorted | 64位时间排序
- KSUID - 160-bit K-sortable | 160位K可排序
- NanoID - Compact URL-friendly | 紧凑URL友好
- Segment - Database sequence | 数据库序列
- Simple (Atomic/Timestamp/Random) | 简单(原子/时间戳/随机)
Usage Examples | 使用示例:
// Snowflake ID
long snowflakeId = OpenId.snowflakeId();
String snowflakeStr = OpenId.snowflakeIdStr();
// UUID
UUID uuid = OpenId.uuid();
UUID uuidV7 = OpenId.uuidV7();
// ULID
String ulid = OpenId.ulid();
// TSID
long tsid = OpenId.tsid();
String tsidStr = OpenId.tsidStr();
// KSUID
String ksuid = OpenId.ksuid();
// NanoID
String nanoId = OpenId.nanoId();
String shortId = OpenId.nanoId(10);
// Simple IDs
long simpleId = OpenId.simpleId();
String timestampId = OpenId.timestampId();
Security | 安全性:
- Thread-safe: Yes - 线程安全: 是
Features | 主要功能:
- Unified entry point for all ID generation strategies - 所有ID生成策略的统一入口
- Support for Snowflake, ULID, UUID, NanoID, KSUID, TSID - 支持Snowflake、ULID、UUID、NanoID、KSUID、TSID
- Configurable ID generation parameters - 可配置的ID生成参数
- Since:
- JDK 25, opencode-base-id V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic IdGenerator<Long> createSegmentGenerator(SegmentAllocator allocator) Creates a segment mode generator 创建号段模式生成器static IdGenerator<Long> createSegmentGenerator(SegmentAllocator allocator, String bizTag) Creates a segment mode generator with business tag 使用业务标识创建号段模式生成器static IdGenerator<Long> createSnowflake(long workerId, long datacenterId) Creates a Snowflake generator with worker and datacenter IDs 使用工作节点ID和数据中心ID创建雪花ID生成器static TsidGeneratorcreateTsidGenerator(int nodeBits, long nodeId) Creates a TSID generator with node configuration 使用节点配置创建TSID生成器static longdecodeTsid(String tsidStr) Decodes a TSID string to long value 将TSID字符串解码为长整型值static IdGenerator<String> Gets the KSUID generator 获取KSUID生成器static SafeJsSnowflakeGeneratorGets the default JavaScript-safe Snowflake generator 获取默认JavaScript安全雪花ID生成器static IdGenerator<Long> Gets the default Snowflake generator 获取默认雪花ID生成器static IdGenerator<Long> Gets the default TSID generator 获取默认TSID生成器static IdGenerator<String> Gets the ULID generator 获取ULID生成器static IdGenerator<UUID> Gets the UUID v7 generator 获取UUID v7生成器static booleanisValidKsuid(String ksuid) Validates a KSUID string 验证KSUID字符串static Stringksuid()Generates a KSUID (K-Sortable Unique Identifier) 生成KSUID(K可排序唯一标识符)static byte[]Generates a KSUID as raw bytes 生成KSUID原始字节static StringnanoId()Generates a NanoID (default 21 chars) 生成NanoID(默认21字符)static StringnanoId(int size) Generates a NanoID with specific length 使用指定长度生成NanoIDstatic StringGenerates a NanoID with custom alphabet 使用自定义字母表生成NanoIDstatic NanoIdBuilderCreates a NanoID builder 创建NanoID构建器static KsuidParser.ParsedKsuidparseKsuid(String ksuid) Parses a KSUID 解析KSUIDstatic PrefixedIdparsePrefixedId(String prefixedId) Parses a prefixed ID string (e.g., "usr_01ARZ3NDEK") into a PrefixedId 将带前缀的ID字符串(如"usr_01ARZ3NDEK")解析为PrefixedIdstatic SnowflakeIdParser.ParsedIdparseSnowflakeId(long id) Parses a Snowflake ID 解析雪花IDstatic TsidParser.ParsedTsidparseTsid(long tsid) Parses a TSID long value 解析TSID长整型值static TsidParser.ParsedTsidParses a TSID string 解析TSID字符串static UlidParser.ParsedUlidParses a ULID 解析ULIDstatic UuidParser.ParsedUuidParses a UUID to extract version, variant, and timestamp information 解析UUID以提取版本、变体和时间戳信息static StringrandomId(int length) Generates a random ID 生成随机IDstatic longGenerates a JavaScript-safe Snowflake ID (value always ≤ 2^53-1) 生成JavaScript安全的雪花ID(值始终≤ 2^53-1)static StringGenerates a JavaScript-safe Snowflake ID as string 生成JavaScript安全的雪花ID字符串static longsimpleId()Generates a simple incremental ID 生成简单自增IDstatic StringGenerates a simple UUID (no hyphens) 生成简化UUID(无连字符)static SnowflakeBuilderCreates a Snowflake builder for customized configuration 创建用于自定义配置的雪花ID构建器static SnowflakeFriendlyIdReturns a SnowflakeFriendlyId converter using the default configuration 使用默认配置返回SnowflakeFriendlyId转换器static longGenerates a Snowflake ID using default configuration 使用默认配置生成雪花IDstatic StringGenerates a Snowflake ID as string 生成雪花ID字符串static StringGenerates a timestamp-based ID 生成基于时间戳的IDstatic longtsid()Generates a TSID (Time-Sorted ID) 生成TSID(时间排序ID)static StringtsidStr()Generates a TSID as Crockford's Base32 string 生成Crockford Base32编码的TSID字符串static TypedIdGeneratortypedIdGenerator(String prefix, IdGenerator<String> inner) Creates a TypedIdGenerator with the specified prefix and underlying generator 创建带指定前缀和底层生成器的TypedIdGeneratorstatic Stringulid()Generates a ULID 生成ULIDstatic byte[]Generates a ULID as byte array 生成ULID字节数组static UUIDuuid()Generates a UUID v4 (random) 生成UUID v4(随机)static StringuuidStr()Generates a UUID v4 as string 生成UUID v4字符串static UUIDuuidV7()Generates a UUID v7 (time-ordered) 生成UUID v7(时间有序)static StringGenerates a UUID v7 as string 生成UUID v7字符串
-
Method Details
-
snowflakeId
public static long snowflakeId()Generates a Snowflake ID using default configuration 使用默认配置生成雪花ID- Returns:
- 64-bit Snowflake ID | 64位雪花ID
-
snowflakeIdStr
Generates a Snowflake ID as string 生成雪花ID字符串- Returns:
- Snowflake ID string | 雪花ID字符串
-
getSnowflake
Gets the default Snowflake generator 获取默认雪花ID生成器- Returns:
- generator | 生成器
-
createSnowflake
Creates a Snowflake generator with worker and datacenter IDs 使用工作节点ID和数据中心ID创建雪花ID生成器- Parameters:
workerId- the worker node ID (0-31) | 工作节点ID(0-31)datacenterId- the datacenter ID (0-31) | 数据中心ID(0-31)- Returns:
- generator | 生成器
-
snowflakeBuilder
Creates a Snowflake builder for customized configuration 创建用于自定义配置的雪花ID构建器- Returns:
- builder | 构建器
-
parseSnowflakeId
Parses a Snowflake ID 解析雪花ID- Parameters:
id- the Snowflake ID | 雪花ID- Returns:
- parsed result | 解析结果
-
safeJsSnowflakeId
public static long safeJsSnowflakeId()Generates a JavaScript-safe Snowflake ID (value always ≤ 2^53-1) 生成JavaScript安全的雪花ID(值始终≤ 2^53-1)Prevents silent rounding when the ID is serialized as a JSON number and consumed by a JavaScript frontend.
防止ID被序列化为JSON数字并被JavaScript前端消费时的静默四舍五入。
- Returns:
- JavaScript-safe ID | JavaScript安全的ID
-
safeJsSnowflakeIdStr
Generates a JavaScript-safe Snowflake ID as string 生成JavaScript安全的雪花ID字符串- Returns:
- ID string | ID字符串
-
getSafeJsSnowflake
Gets the default JavaScript-safe Snowflake generator 获取默认JavaScript安全雪花ID生成器- Returns:
- generator | 生成器
-
snowflakeFriendly
Returns a SnowflakeFriendlyId converter using the default configuration 使用默认配置返回SnowflakeFriendlyId转换器Examples | 示例:
String readable = OpenId.snowflakeFriendly().toFriendly(snowflakeId); // → "2024-01-15T10:30:00.123Z#0-0-42"
- Returns:
- SnowflakeFriendlyId converter | SnowflakeFriendlyId转换器
-
typedIdGenerator
Creates a TypedIdGenerator with the specified prefix and underlying generator 创建带指定前缀和底层生成器的TypedIdGeneratorExamples | 示例:
IdGenerator<String> gen = OpenId.typedIdGenerator("usr", UlidGenerator.create()); String userId = gen.generate(); // → "usr_01ARZ3NDEKTSV4RRFFQ69G5FAV"- Parameters:
prefix- the lowercase entity-type prefix (e.g., "usr", "order") | 小写实体类型前缀(如"usr"、"order")inner- the underlying string ID generator | 底层字符串ID生成器- Returns:
- TypedIdGenerator | 类型化ID生成器
- Throws:
OpenIdGenerationException- if prefix is invalid | 前缀无效时抛出
-
parsePrefixedId
Parses a prefixed ID string (e.g., "usr_01ARZ3NDEK") into a PrefixedId 将带前缀的ID字符串(如"usr_01ARZ3NDEK")解析为PrefixedId- Parameters:
prefixedId- the full prefixed ID string | 完整的带前缀ID字符串- Returns:
- parsed PrefixedId | 解析后的PrefixedId
- Throws:
OpenIdGenerationException- if the format is invalid | 格式无效时抛出
-
uuid
-
uuidStr
Generates a UUID v4 as string 生成UUID v4字符串- Returns:
- UUID string | UUID字符串
-
simpleUuid
Generates a simple UUID (no hyphens) 生成简化UUID(无连字符)- Returns:
- simple UUID string (32 chars) | 简化UUID字符串(32字符)
-
uuidV7
Generates a UUID v7 (time-ordered) 生成UUID v7(时间有序)- Returns:
- UUID object | UUID对象
-
uuidV7Str
Generates a UUID v7 as string 生成UUID v7字符串- Returns:
- UUID string | UUID字符串
-
getUuidV7Generator
Gets the UUID v7 generator 获取UUID v7生成器- Returns:
- generator | 生成器
-
parseUuid
Parses a UUID to extract version, variant, and timestamp information 解析UUID以提取版本、变体和时间戳信息- Parameters:
uuid- the UUID to parse | 要解析的UUID- Returns:
- parsed UUID info | 解析后的UUID信息
-
ulid
-
ulidBytes
public static byte[] ulidBytes()Generates a ULID as byte array 生成ULID字节数组- Returns:
- 16-byte array | 16字节数组
-
getUlidGenerator
Gets the ULID generator 获取ULID生成器- Returns:
- generator | 生成器
-
parseUlid
Parses a ULID 解析ULID- Parameters:
ulid- the ULID string | ULID字符串- Returns:
- parsed result | 解析结果
-
tsid
public static long tsid()Generates a TSID (Time-Sorted ID) 生成TSID(时间排序ID)- Returns:
- 64-bit TSID | 64位TSID
-
tsidStr
Generates a TSID as Crockford's Base32 string 生成Crockford Base32编码的TSID字符串- Returns:
- TSID string (13 characters) | TSID字符串(13字符)
-
getTsidGenerator
Gets the default TSID generator 获取默认TSID生成器- Returns:
- generator | 生成器
-
createTsidGenerator
Creates a TSID generator with node configuration 使用节点配置创建TSID生成器- Parameters:
nodeBits- the number of bits for node ID (0-22) | 节点ID位数(0-22)nodeId- the node ID | 节点ID- Returns:
- generator | 生成器
-
parseTsid
Parses a TSID string 解析TSID字符串- Parameters:
tsidStr- the TSID string | TSID字符串- Returns:
- parsed result | 解析结果
-
parseTsid
Parses a TSID long value 解析TSID长整型值- Parameters:
tsid- the TSID value | TSID值- Returns:
- parsed result | 解析结果
-
decodeTsid
Decodes a TSID string to long value 将TSID字符串解码为长整型值- Parameters:
tsidStr- the TSID string | TSID字符串- Returns:
- TSID value | TSID值
-
ksuid
Generates a KSUID (K-Sortable Unique Identifier) 生成KSUID(K可排序唯一标识符)- Returns:
- KSUID string (27 characters) | KSUID字符串(27字符)
-
ksuidBytes
public static byte[] ksuidBytes()Generates a KSUID as raw bytes 生成KSUID原始字节- Returns:
- 20-byte array | 20字节数组
-
getKsuidGenerator
Gets the KSUID generator 获取KSUID生成器- Returns:
- generator | 生成器
-
parseKsuid
Parses a KSUID 解析KSUID- Parameters:
ksuid- the KSUID string | KSUID字符串- Returns:
- parsed result | 解析结果
-
isValidKsuid
Validates a KSUID string 验证KSUID字符串- Parameters:
ksuid- the KSUID string | KSUID字符串- Returns:
- true if valid | 如果有效返回true
-
nanoId
Generates a NanoID (default 21 chars) 生成NanoID(默认21字符)- Returns:
- NanoID string | NanoID字符串
-
nanoId
Generates a NanoID with specific length 使用指定长度生成NanoID- Parameters:
size- the length | 长度- Returns:
- NanoID string | NanoID字符串
-
nanoId
-
nanoIdBuilder
Creates a NanoID builder 创建NanoID构建器- Returns:
- builder | 构建器
-
simpleId
public static long simpleId()Generates a simple incremental ID 生成简单自增ID- Returns:
- incremental ID | 自增ID
-
timestampId
Generates a timestamp-based ID 生成基于时间戳的ID- Returns:
- timestamp ID string | 时间戳ID字符串
-
randomId
Generates a random ID 生成随机ID- Parameters:
length- the length | 长度- Returns:
- random ID string | 随机ID字符串
-
createSegmentGenerator
Creates a segment mode generator 创建号段模式生成器- Parameters:
allocator- the segment allocator | 号段分配器- Returns:
- generator | 生成器
-
createSegmentGenerator
Creates a segment mode generator with business tag 使用业务标识创建号段模式生成器- Parameters:
allocator- the segment allocator | 号段分配器bizTag- the business tag | 业务标识- Returns:
- generator | 生成器
-