# metool
**Repository Path**: lionelk/metool
## Basic Information
- **Project Name**: metool
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2025-08-13
- **Last Updated**: 2025-11-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# METool 项目文档
## 项目概述
METool 是一个综合性的工具集项目,包含多个功能模块,旨在为开发者提供便捷的开发工具和基础架构支持。项目采用模块化设计,包含以下核心模块:
1. **common** - 通用工具和基础类库
2. **cache** - 缓存管理模块(支持Redis和Redisson)
3. **crypto-shield-spring-boot-starter** - 加密安全模块
4. **validator** - 数据验证模块
5. **id-generator** - ID生成模块
6. **aliyun-ons-spring-boot-starter** - 阿里云消息队列集成模块
## 模块功能
### common 模块
- 提供通用异常处理框架
- 包含基础结果返回对象
- 提供树形结构构建工具
- 包含元组工具类
- Spring工具类扩展
### cache 模块
- 提供Redis和Redisson的集成支持
- 实现了丰富的缓存操作接口
- 支持分布式锁
- 提供智能缓存管理
### crypto-shield-spring-boot-starter 模块
- 提供全面的数据加密解决方案
- 支持RSA、AES和混合加密模式
- 实现请求/响应自动加解密
- 支持数字签名验证
- 提供Web层集成支持
### validator 模块
- 基于Bean Validation规范的验证工具
- 提供便捷的数据验证接口
### id-generator 模块
- 提供分布式ID生成服务
- 支持多种ID生成策略
- 实现ID序列化/反序列化
### aliyun-ons-spring-boot-starter 模块
- 阿里云ONS消息队列集成
- 支持消息发送和消费
- 提供类型化消息支持
- 实现消息序列化/反序列化
- 支持消息监听器
## 快速开始
### 项目构建
使用Maven进行项目构建:
```bash
mvn clean install
```
### 模块依赖
根据需要在您的项目pom.xml中添加对应模块的依赖:
```xml
cc.coderm
me-tool-common
${project.version}
```
## 使用示例
### 使用ID生成器
```java
// 初始化ID生成器(通常在应用启动时调用一次)
IdUtil.initializeIdGenerator();
// 生成新ID
long newId = IdUtil.nextId();
// 生成字符串格式的ID
String newIdStr = IdUtil.nextIdStr();
```
### 使用缓存模块
```java
// 存储数据到缓存
redisService.setValue("user:1001", user);
// 从缓存获取数据
User user = (User) redisService.getValue("user:1001");
// 使用分布式锁
RLock lock = redissonService.lock("user:lock:1001");
try {
// 执行需要加锁的业务逻辑
} finally {
redissonService.unlock("user:lock:1001");
}
```
### 使用加密模块
```java
// 在Spring Boot应用中启用加密功能
@EnableCryptoSecurity
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
// 在Controller中使用加密注解
@RestController
@RequestMapping("/api")
public class MyController {
@PostMapping("/secure")
@CryptoSecure(mode = CryptoMode.HYBRID)
public Map secureData(@RequestBody Map data) {
return Collections.singletonMap("response", "sensitiveData");
}
}
```
### 使用消息队列
```java
// 发送消息
@Autowired
private OnsTemplate onsTemplate;
public void sendMessage() {
SendResult result = onsTemplate.sendMessage("TOPIC_TEST", "TAG_A", "Hello ONS".getBytes());
System.out.println("Message sent: " + result);
}
// 消费消息
@Component
@OnsMessageListener(topic = "TOPIC_TEST", tag = "TAG_A")
public class MyMessageListener implements MessageListener {
@Override
public Action consume(Message message, ConsumeContext context) {
System.out.println("Received message: " + new String(message.getBody()));
return Action.CommitMessage;
}
}
```
## 开发指南
1. 根据项目需求选择需要的模块进行集成
2. 在Spring Boot应用的配置文件中添加对应模块的配置
3. 通过依赖注入使用对应的服务组件
4. 对于加密模块,需要根据安全需求配置加密算法和密钥
5. 对于消息队列模块,需要配置ONS的访问凭证和消息主题
## 贡献指南
欢迎贡献代码和文档,贡献前请先阅读项目贡献指南并遵循以下规范:
1. 提交代码前请确保通过所有测试
2. 保持代码风格一致
3. 提供详细的提交说明
4. 对于重大变更,请先提交Issue讨论
## 许可证
本项目采用Apache-2.0许可证,详细请参阅LICENSE文件。