0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是Easy_Trans

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-09-30 16:48 ? 次閱讀

今天給大家介紹一個(gè)很好用的開源項(xiàng)目:easy_trans,它能讓你的項(xiàng)目減少30%的SQL代碼量,接下來讓我們進(jìn)一步了解它。

什么是Easy_Trans

Easy Trans是一款用于做數(shù)據(jù)翻譯的代碼輔助插件,利用MyBatis Plus/JPA/BeetlSQL 等ORM框架的能力自動(dòng)查表,讓開發(fā)者可以快速的把ID/字典碼 翻譯為前端需要展示的數(shù)據(jù)。

圖片
Easy_Trans

easy trans的優(yōu)點(diǎn)

功能多樣

  1. 緩存支持
  2. 跨微服務(wù)翻譯支持(User和Order 是2個(gè)不同微服務(wù),order里面有userId 需要userName)
  3. 國際化支持
  4. 多種ORM框架適配
  5. 多數(shù)據(jù)源支持
  6. 集合支持(userIds [1,2,3] 翻譯為張三,李四,王五)
  7. 反向翻譯支持 男->gender 0 張三->user id id 陜西分公司 財(cái)務(wù)部 -> org_id 1

適用多種場景

  1. 我擁有一個(gè)ID,但需要向客戶展示他的職位/姓名,但又不想手動(dòng)執(zhí)行表關(guān)聯(lián)查詢。
  2. 我有一個(gè)字典碼"sex"和對(duì)應(yīng)的字典值0,我希望將其翻譯為"男",以便展示給客戶。
  3. 我有一組用戶ID,例如1、2、3,我希望將它們展示為"張三"、"李四"、"王五",供客戶查看。
  4. 我的枚舉中包含一個(gè)"title"字段,我希望向前端展示該字段的值,以供客戶查看。
  5. 我擁有一個(gè)唯一鍵(例如手機(jī)號(hào)碼、身份證號(hào)碼),但需要向客戶展示他們的職位/姓名,而又不想手動(dòng)執(zhí)行表關(guān)聯(lián)查詢。

配置簡單

對(duì)于springboot項(xiàng)目,只需要引入 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 >

然后引入項(xiàng)目中對(duì)應(yīng)的orm框架的擴(kuò)展,以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 全局?jǐn)r截后自動(dòng)翻譯
  is-enable-global: true
  # 字典緩存是否放到redis中 做二級(jí)緩存,微服務(wù)模式推薦開啟
  dict-use-redis: true
  db-type: mysql

靈活易用

easy trans 支持五種類型

1、字典翻譯(TransType.DICTIONARY) 需要使用者把字典信息刷新到DictionaryTransService 中進(jìn)行緩存,使用字典翻譯的時(shí)候取緩存數(shù)據(jù)源

2、簡單翻譯(TransType.SIMPLE) 比如有userId需要userName或者userPo給前端,原理是組件使用MybatisPlus/JPA的API自動(dòng)進(jìn)行查詢,把結(jié)果放到transMap中。

3、跨微服務(wù)翻譯(TransType.RPC)

比如訂單和用戶是2個(gè)微服務(wù),但是我要在訂單詳情里展示訂單的創(chuàng)建人的用戶名,需要用到RP翻譯,原理是訂單微服務(wù)使用restTemplate調(diào)用用戶服務(wù)的一個(gè)統(tǒng)一的接口,把需要翻譯的id傳過去,然后用戶微服務(wù)使用MybatisPlus/JPA的API自動(dòng)進(jìn)行查詢把結(jié)果給訂單微服務(wù),然后訂單微服務(wù)拿到數(shù)據(jù)后進(jìn)行翻譯,當(dāng)然使用者只是需要一個(gè)注解,這些事情都是由組件自動(dòng)完成的。

4、AutoTrans(TransType.AUTO) 還是id翻譯name場景,但是使用者如果想組件調(diào)用自己寫的方法而不通過Mybatis Plus/JPA 的API進(jìn)行數(shù)據(jù)查詢,就可以使用AutoTrans

5、枚舉翻譯(TransType.ENUM) 比如我要把SEX.BOY 翻譯為男,可以用枚舉翻譯。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    750

    瀏覽量

    43900
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67765
  • easy
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    12521
  • Trans
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5865
  • 開源項(xiàng)目
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    7144
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    新一代圖片處理技術(shù)讓富士 X-Trans傳感器如虎添翼

    X-Trans 相機(jī)與市場上的其他相機(jī)有何不同,機(jī)器學(xué)習(xí)又是如何顛覆 raw 文件的處理方式的? DxO首席科學(xué)家 Wolf Hauser 探討了 X-Trans 的優(yōu)缺點(diǎn),以及 DxO 用于顯著
    的頭像 發(fā)表于 04-27 11:43 ?6186次閱讀
    新一代圖片處理技術(shù)讓富士 X-<b class='flag-5'>Trans</b>傳感器如虎添翼

    CANopen_easy_begin

    CANopen_easy_begin,,,
    發(fā)表于 09-16 17:57

    0242-0003美國TRANS-TEK

    代理美國Trans-Tek線性和角位移線性傳感器深圳市現(xiàn)代豪方儀器儀表科技有限公司吳經(jīng)理:132.4667.5433 / 0755-26998458 工作Q:1139878854美國
    發(fā)表于 02-14 11:21

    ST7789,spi_device_polling_transmit和spi_device_queue_trans差異是什么?

    ;); for (int i=0; i8; //End Col High trans[1].tx_data[3]=((uint16_t)239)&0xff;//End Col Low trans[2
    發(fā)表于 02-13 07:38

    ST7789,spi_device_polling_transmit和spi_device_queue_trans差異是什么?

    ; //End Col High trans[1].tx_data[3]=((uint16_t)239)&0xff;//End Col Low trans[2].tx_data[0]=0x2B
    發(fā)表于 03-06 06:55

    通過SPI(使用 IDF)發(fā)送特定的32位命令,為什么spi_trans沒有完成?

    我想通過 SPI(使用 IDF)發(fā)送特定的 32 位命令。 下面的代碼有效(示波器顯示)但我需要 cpha = 1。 所以工作代碼是: 和不工作,但我需要: 這是行不通的,spi_trans 永遠(yuǎn)
    發(fā)表于 05-30 06:26

    Easy FPGA030原理圖

    Easy FPGA030原理圖
    發(fā)表于 03-17 09:26 ?32次下載
    <b class='flag-5'>Easy</b> FPGA030原理圖

    Easy!Flow簡明安裝配置手冊(cè)

    本手冊(cè)簡明的介紹Easy!Flow安裝配置、備份、升級(jí)的基本方法。幫助用戶迅速了解配置管理Easy!Flow的要點(diǎn)。由于Easy!Flow包含Easy!Agile、
    發(fā)表于 04-15 23:21 ?8次下載

    基于EASY CORE芯片組的專用PLC設(shè)計(jì)

    EASY CORE是一個(gè)加載了EASY嵌入式PLC軟件平臺(tái)的核心芯片組,用于設(shè)計(jì)PLC,內(nèi)核采用C8051F040混合式高性能單片機(jī)
    發(fā)表于 01-10 15:00 ?2072次閱讀
    基于<b class='flag-5'>EASY</b> CORE芯片組的專用PLC設(shè)計(jì)

    Easy_ARM2104原理圖

    Easy ARM2104原理圖,有需要的朋友下來看看。
    發(fā)表于 01-13 11:42 ?18次下載

    EASY51用戶手冊(cè)

    EASY51用戶詳細(xì)手冊(cè),含單片機(jī)引腳圖。
    發(fā)表于 05-25 14:25 ?0次下載

    Easy MCU Easy RF”電子技術(shù)研討會(huì)

    瑞薩電子在北京賽區(qū)舉辦一場瑞薩電子技術(shù)研討會(huì),本視頻為題目為Easy MCU Easy RF
    的頭像 發(fā)表于 06-14 01:16 ?4332次閱讀

    Working with our Technology Made Easy Blog (EngineerZone)

    Working with our Technology Made Easy Blog (EngineerZone)
    發(fā)表于 01-27 22:34 ?1次下載
    Working with our Technology Made <b class='flag-5'>Easy</b> Blog (EngineerZone)

    easy-mybatis Mybatis的增強(qiáng)框架

    ./oschina_soft/gitee-easy-mybatis.zip
    發(fā)表于 06-14 09:45 ?1次下載
    <b class='flag-5'>easy</b>-mybatis Mybatis的增強(qiáng)框架

    PSoC NeoPixel Easy輕量級(jí)庫

    電子發(fā)燒友網(wǎng)站提供《PSoC NeoPixel Easy輕量級(jí)庫.zip》資料免費(fèi)下載
    發(fā)表于 11-17 09:48 ?0次下載
    PSoC NeoPixel <b class='flag-5'>Easy</b>輕量級(jí)庫