今天給大家介紹一個很好用的開源項目:easy_trans,它能讓你的項目減少30%的SQL代碼量,接下來讓我們進一步了解它。
什么是Easy_Trans
Easy Trans是一款用于做數據翻譯的代碼輔助插件,利用MyBatis Plus/JPA/BeetlSQL 等ORM框架的能力自動查表,讓開發者可以快速的把ID/字典碼 翻譯為前端需要展示的數據。
Easy_Trans
easy trans的優點
功能多樣
- 緩存支持
- 跨微服務翻譯支持(User和Order 是2個不同微服務,order里面有userId 需要userName)
- 國際化支持
- 多種ORM框架適配
- 多數據源支持
- 集合支持(userIds [1,2,3] 翻譯為張三,李四,王五)
- 反向翻譯支持 男->gender 0 張三->user id id 陜西分公司 財務部 -> org_id 1
適用多種場景
- 我擁有一個ID,但需要向客戶展示他的職位/姓名,但又不想手動執行表關聯查詢。
- 我有一個字典碼"sex"和對應的字典值0,我希望將其翻譯為"男",以便展示給客戶。
- 我有一組用戶ID,例如1、2、3,我希望將它們展示為"張三"、"李四"、"王五",供客戶查看。
- 我的枚舉中包含一個"title"字段,我希望向前端展示該字段的值,以供客戶查看。
- 我擁有一個唯一鍵(例如手機號碼、身份證號碼),但需要向客戶展示他們的職位/姓名,而又不想手動執行表關聯查詢。
配置簡單
對于springboot項目,只需要引入 easy-trans 的starter
< !-- 目前最新版本就是 2.2.1-M1 -- >
< dependency >
< groupId >com.fhs-opensource< /groupId >
< artifactId >easy-trans-spring-boot-starter< /artifactId >
< version >2.2.1-M1< /version >
< /dependency >
然后引入項目中對應的orm框架的擴展,以mybatisPlus為例
< dependency >
< groupId >com.fhs-opensource< /groupId >
< artifactId >easy-trans-mybatis-plus-extend< /artifactId >
< version >2.2.1-M1< /version >
< /dependency >
然后 yml 配置
# 翻譯配置
easy-trans:
# 平鋪模式
is-enable-tile: true
# 開啟redis支持
is-enable-redis: true
# 開啟responseBody 全局攔截后自動翻譯
is-enable-global: true
# 字典緩存是否放到redis中 做二級緩存,微服務模式推薦開啟
dict-use-redis: true
db-type: mysql
靈活易用
easy trans 支持五種類型
1、字典翻譯(TransType.DICTIONARY) 需要使用者把字典信息刷新到DictionaryTransService 中進行緩存,使用字典翻譯的時候取緩存數據源
2、簡單翻譯(TransType.SIMPLE) 比如有userId需要userName或者userPo給前端,原理是組件使用MybatisPlus/JPA的API自動進行查詢,把結果放到transMap中。
3、跨微服務翻譯(TransType.RPC)
比如訂單和用戶是2個微服務,但是我要在訂單詳情里展示訂單的創建人的用戶名,需要用到RP翻譯,原理是訂單微服務使用restTemplate調用用戶服務的一個統一的接口,把需要翻譯的id傳過去,然后用戶微服務使用MybatisPlus/JPA的API自動進行查詢把結果給訂單微服務,然后訂單微服務拿到數據后進行翻譯,當然使用者只是需要一個注解,這些事情都是由組件自動完成的。
4、AutoTrans(TransType.AUTO) 還是id翻譯name場景,但是使用者如果想組件調用自己寫的方法而不通過Mybatis Plus/JPA 的API進行數據查詢,就可以使用AutoTrans
5、枚舉翻譯(TransType.ENUM) 比如我要把SEX.BOY 翻譯為男,可以用枚舉翻譯。
-
SQL
+關注
關注
1文章
767瀏覽量
44173 -
代碼
+關注
關注
30文章
4798瀏覽量
68728 -
easy
+關注
關注
0文章
18瀏覽量
12549 -
Trans
+關注
關注
0文章
2瀏覽量
5884 -
開源項目
+關注
關注
0文章
38瀏覽量
7209
發布評論請先 登錄
相關推薦
評論