
企业级Java基础工具库,提供分布式系统开发的核心组件和实用工具
g2rain-common 是一个设计精良的企业级基础工具库,为Java开发者提供了一套完整的通用组件和工具类。该库专注于解决分布式系统开发中的常见问题,提供高性能、线程安全、易于使用的API接口。
<dependency> <groupId>com.g2rain</groupId> <artifactId>g2rain-common</artifactId> <version>1.0.1</version></dependency>
dependencies { implementation "com.g2rain:g2rain-common:1.0.1"}
// 获取默认JsonCodecJsonCodec codec = JsonCodecFactory.instance(); // 对象转JSON字符串String json = codec.obj2str(myObject); // JSON字符串转对象MyObject obj = codec.str2obj(json, MyObject.class); // 查找JSON节点JsonNode subNode = codec.lookupNode(node, "data.items[0]");
// 创建事件发布中心EventPublisherHub hub = new EventPublisherHub(Set.of(new MyEventPublisher())); // 发送事件hub.send("USER_SERVICE", EventType.CREATE, new UserData("张三", 25)); // 注册消息存储MessageStorageRegistry.register(new MyMessageStorage());
// 成功响应Result<User> result = Result.success(user); // 分页响应Result<PageData<User>> pageResult = Result.successPage(1, 10, 100, users); // 错误响应Result<Void> errorResult = Result.error("USER_NOT_FOUND", "用户不存在", userId);
// 设置会话上下文PrincipalContextHolder.setClientId("client123");PrincipalContextHolder.setSessionType(SessionType.USER);PrincipalContextHolder.setUserId("user123"); // 获取会话上下文String clientId = PrincipalContextHolder.getClientId();SessionType type = PrincipalContextHolder.getSessionType();
| 模块 | 功能描述 | 文档链接 |
|---|---|---|
syncer | 事件同步与消息分发 | package-info.java |
json | JSON处理增强 | package-info.java |
exception | 统一异常处理 | package-info.java |
web | Web会话管理 | package-info.java |
model | 通用数据模型 | package-info.java |
utils | 实用工具集 | 各工具类源码 |
g2rain-common/├── src/main/java/com/g2rain/common/│ ├── enums/ # 枚举类型定义│ ├── exception/ # 异常处理框架│ ├── id/ # ID生成器│ ├── json/ # JSON处理工具│ ├── model/ # 通用数据模型│ ├── syncer/ # 事件同步系统│ ├── utils/ # 实用工具类│ └── web/ # Web会话管理├── src/test/java/ # 单元测试├── pom.xml # Maven配置└── README.md # 项目文档
项目遵循Google Java代码规范,使用以下工具确保代码质量:
# 编译项目mvn compile # 运行测试mvn test # 代码质量检查mvn checkstyle:check pmd:check spotbugs:check # 生成代码覆盖率报告mvn jacoco:report # 打包mvn package
我们欢迎所有形式的贡献!
git checkout -b feature/your-feature-namegit commit -m "Add some feature"git push origin feature/your-feature-name本项目基于 Apache 2.0许可证 开源。
感谢所有为这个项目做出贡献的开发者们!
⭐ 如果这个项目对您有帮助,请给我们一个Star!