Easy_Trans 1.1.1 版本发布,一个注解搞定字典/外键翻译

栏目: 软件资讯 · 发布时间: 3年前

内容简介:1、升级内容 A @Trans注解ref支持添加多个(建议使用平铺模式而不是ref) B 修复@Trans type写错的话,报空指针bug C 添加平铺模式 平铺模式为:比如我有一个student类,他有一个teacherid,根据teacherid翻译得到的...

1、升级内容

A @Trans注解ref支持添加多个(建议使用平铺模式而不是ref)

B 修复@Trans type写错的话,报空指针bug

C 添加平铺模式

   平铺模式为:比如我有一个student类,他有一个teacherid,根据teacherid翻译得到的teacherName框架会放到student的transMap这个map中,序列完了如下:

{
"id":1,
"teacherId":1,
"transMap":{"teacherName":"王老师"}
}

开启平铺模式后序列化为:

{
"id":1,
"teacherId":1,
"teacherName":"王老师"
}

开启方法:

easy-trans.is-enable-tile=true

 

2、介绍

在项目开发中,借助JPA和Mybatis Plus我们已经可以做到单表查询不写SQL,但是很多时候我们需要关联字典表,关联其他表来实现字典码和外键的翻译,又要去写sql,使用 EasyTrans 你只需要在被翻译的pojo属性上加一个注解即可完成字典码/外键 翻译。

先看效果:

Easy_Trans 1.1.1 版本发布,一个注解搞定字典/外键翻译

easy trans适用于三种场景
1 我有一个id,但是我需要给客户展示他的title/name 但是我又不想做表关联查询
2 我有一个字典码 sex 和 一个字典值0 我希望能翻译成 男 给客户展示。
3 我有一组user id 比如 1,2,3 我希望能展示成 张三,李四,王五 给客户

食用步骤

技术经理/架构 需要做的事情

1 、先把maven 引用加上

       <dependency>
            <groupId>com.fhs-opensource</groupId>
            <artifactId>easy-trans-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

Mybatis plus用户另外还需要加以下扩展:

        <dependency>
            <groupId>com.fhs-opensource</groupId>
            <artifactId>easy_trans_mybatis_plus_extend</artifactId>
            <version>1.1.1</version>
        </dependency>

JPA 用户另外还需要加以下扩展:

        <dependency>
            <groupId>com.fhs-opensource</groupId>
            <artifactId>easy_trans_jpa_extend</artifactId>
            <version>1.1.1</version>
        </dependency>

如果使用 Redis 请添加redis的引用(如果之前加过了请不要重复添加)

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2、在yaml中添加如下配置

easy-trans:
   autotrans:
       #您的service/dao所在的包 支持通配符比如com.*.**.service.**,他的默认值是com.*.*.service.impl
       package: com.fhs.test.service.**;com.fhs.test.dao.** 
   #启用redis缓存 如果不用redis请设置为false
   is-enable-redis: true 
   #启用全局翻译(拦截所有responseBody进行自动翻译),如果对于性能要求很高可关闭此配置
   is-enable-global: true 
  
spring:#如果用到redis配置redis连接
  redis:
    host: 192.168.0.213
    port: 6379
    password: 123456
    database: 0
    timeout: 6000

3、如果不使用redis,请在启动类加禁用掉redis的自动配置类

@SpringBootApplication(exclude = { RedisAutoConfiguration.class })

4、初始化字典数据(如果你们项目没字典表请忽略)

       @Autowired  //注入字典翻译服务
       private  DictionaryTransService dictionaryTransService;
       //在某处将字典缓存刷新到翻译服务中,以下是demo
       Map<String,String> transMap = new HashMap<>();
       transMap.put("0","男");
       transMap.put("1","女");
       dictionaryTransService.refreshCache("sex",transMap);

5、微服务配置(比如订单服务用到了用户服务的user数据来进行翻译,不牵扯微服务的可以不管)
A、白名单添加 /easyTrans/proxy/** 保证其不被拦截,RPC trans的时候easytrans会自动调用目标微服务的接口来获取数据。
B、应用之间的认证可以通过filter/interceptor实现,然后自定义RestTemplate 保证easytrans在请求用户服务的时候带上需要认证的参数

普通 程序员 需要做的事情

pojo 中添加

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
//实现TransPojo  接口,代表这个类需要被翻译或者被当作翻译的数据源
public class Student implements TransPojo {
     // 字典翻译 ref为非必填
    @Trans(type = TransType.DICTIONARY,key = "sex")
    private Integer sex;

    //SIMPLE 翻译,用于关联其他的表进行翻译    schoolName 为 School 的一个字段
    @Trans(type = TransType.SIMPLE,target = School.class,fields = "schoolName")
    private String schoolId;
	
	//远程翻译,调用其他微服务的数据源进行翻译
	@Trans(type = TransType.RPC,targetClassName = "com.fhs.test.pojo.School",fields = "schoolName",serviceName = "easyTrans",alias = "middle")
    private String middleSchoolId;
}

然后访问你的controller,看返回结果。

示例项目

https://gitee.com/fhs-opensource/easy_trans_springboot_demo

插件文档

https://gitee.com/fhs-opensource/easy_trans/wikis/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Effective JavaScript

Effective JavaScript

赫尔曼 (David Herman) / 黄博文、喻杨 / 机械工业出版社 / 2014-1-1 / CNY 49.00

Effective 系列丛书经典著作,亚马逊五星级畅销书,Ecma 的JavaScript 标准化委员会著名专家撰写,JavaScript 语言之父、Mozilla CTO —— Brendan Eich 作序鼎力推荐!作者凭借多年标准化委员会工作和实践经验,深刻辨析JavaScript 的内部运作机制、特性、陷阱和编程最佳实践,将它们高度浓缩为极具实践指导意义的 68 条精华建议。 本书共......一起来看看 《Effective JavaScript》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具