# 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

license Apache 2.0

--- ## 🚀 简介 | 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)文件。