今天給大家介紹一個很好用的開源項目: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文章
775瀏覽量
44272 -
代碼
+關注
關注
30文章
4836瀏覽量
69119 -
easy
+關注
關注
0文章
18瀏覽量
12552 -
Trans
+關注
關注
0文章
2瀏覽量
5886 -
開源項目
+關注
關注
0文章
38瀏覽量
7255
發布評論請先 登錄
相關推薦
新一代圖片處理技術讓富士 X-Trans傳感器如虎添翼
![新一代圖片處理技術讓富士 X-<b class='flag-5'>Trans</b>傳感器如虎添翼](https://file.elecfans.com/web2/M00/3F/8A/poYBAGJousuAEdTSAAAhKOQAQS8073.png)
0242-0003美國TRANS-TEK
ST7789,spi_device_polling_transmit和spi_device_queue_trans差異是什么?
ST7789,spi_device_polling_transmit和spi_device_queue_trans差異是什么?
通過SPI(使用 IDF)發送特定的32位命令,為什么spi_trans沒有完成?
Easy!Flow簡明安裝配置手冊
基于EASY CORE芯片組的專用PLC設計
![基于<b class='flag-5'>EASY</b> CORE芯片組的專用PLC設計](https://file1.elecfans.com//web2/M00/A6/1B/wKgZomUMO8KAPw0xAAAV33RZ5a0097.jpg)
Working with our Technology Made Easy Blog (EngineerZone)
![Working with our Technology Made <b class='flag-5'>Easy</b> Blog (EngineerZone)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論