# sorghum-trans
**Repository Path**: cmeet/sorghum-trans
## Basic Information
- **Project Name**: sorghum-trans
- **Description**: Sorghum-Trans:一行注解实现多语言翻译与联查,极简开发无负担! 🌍✨
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-08-12
- **Last Updated**: 2025-08-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# sorghum-trans
中文 | [English](./README-EN.md)
Sorghum Trans
基于注解的Java对象自动关联和转换框架
支持Solon / SpringBoot
---
## 🚀 简介 | Intro
sorghum-trans 是一个基于注解的Java对象自动关联和转换框架。它可以通过简单的注解配置,实现对象属性的自动关联查询和值转换功能,适用于需要对数据进行关联查询和格式转换的场景。
该框架支持主流Java框架如Solon和SpringBoot,通过注解驱动的方式,大大简化了数据处理的复杂性。
## 🌈 特性 | Features
+ **注解驱动**:通过简单的注解配置实现复杂的数据关联和转换
+ **自动关联查询**:支持通过[EasyJoin](sorghum-trans-anno/src/main/java/site/sorghum/plugin/join/aop/EasyJoin.java)注解实现对象属性的自动关联查询
+ **数据转换**:支持通过[Transition](sorghum-trans-anno/src/main/java/site/sorghum/plugin/join/aop/Transition.java)注解实现字段值的自动转换
+ **多框架支持**:同时支持Solon和SpringBoot框架
+ **策略模式**:内置多种转换策略,如URL编码、HTML转义、枚举转换等
+ **易于扩展**:支持自定义关联查询和转换策略
## 📦 模块说明
```
sorghum-trans
├── sorghum-trans-anno 注解定义模块
├── sorghum-trans-core 核心实现模块
├── sorghum-trans-solon-plugin Solon插件模块
└── sorghum-trans-springboot-starter SpringBoot Starter模块
```
### sorghum-trans-anno
包含框架所需的核心注解,如[EasyJoin](sorghum-trans-anno/src/main/java/site/sorghum/plugin/join/aop/EasyJoin.java)、[Transition](sorghum-trans-anno/src/main/java/site/sorghum/plugin/join/aop/Transition.java)等。
### sorghum-trans-core
框架核心实现,包括关联查询、数据转换、策略模式等核心功能。
### sorghum-trans-solon-plugin
Solon框架的插件实现,提供与Solon框架的集成支持。
### sorghum-trans-springboot-starter
SpringBoot的Starter实现,提供与SpringBoot框架的集成支持。
## 🔧 使用示例
### 对象关联查询示例
```java
public class UserDTO {
// 通过EasyJoin注解实现关联查询
@EasyJoin(
sql = "select id,name from user where id = #{uniqueKey}",
sourceName = "userInfo",
flat = true,
rpData = @EasyJoin.RpData(dataKey = "name", fieldName = "userName")
)
private String userId;
// 关联查询后自动填充
private String userName;
}
```
### 字段值转换示例
```java
public class DataDTO {
// URL编码转换
@Transition(strategy = UrlEncodeStrategy.class, originSetValue = true)
private String urlParam = "一二三=四五六&七八九";
// 枚举转换
@Transition(strategy = EnumTransStrategy.class, extraClass = StatusEnum.class)
private String status = "1";
}
```
## 📚 详细文档
- [EasyJoin 注解使用详解](./EASYJOIN_USAGE.md) - EasyJoin 注解各个字段的详细说明和使用示例
## 🛠️ 自定义策略
框架支持自定义转换策略,只需实现[BaseStrategy](sorghum-trans-anno/src/main/java/site/sorghum/plugin/join/strategy/BaseStrategy.java)接口:
```java
@Component
public class CustomStrategy implements BaseStrategy {
@Override
public Object trans(T tObj, String[] param, Class>[] classes) {
// 实现自定义转换逻辑
return convertedValue;
}
}
```
## 📄 许可证
sorghum-trans使用Apache 2.0许可证。详情请参阅[LICENSE](LICENSE)文件。