Easy_Trans 1.0.9 发布,新增跨微服务翻译

栏目: 软件资讯 · 发布时间: 2天前

来源: 开源中国社区

内容简介:1、升级内容 A 添加跨微服务翻译(需要配合mybatis plus/Spring data JPA) 比如订单服务的order 需要根据userId 获取到userName ,但是user 在用户服务上,就可以用到easyTrans的跨微服务翻译支持。 //远程翻译,...

本文转载自:https://www.oschina.net/news/163853/easy-trans-1-0-9-released,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

1、升级内容

A    添加跨微服务翻译(需要配合mybatis plus/Spring data JPA)

      比如订单服务的order 需要根据userId 获取到userName ,但是user 在用户服务上,就可以用到easyTrans的跨微服务翻译支持。

//远程翻译,使用其他的微服务当作数据源进行翻译
    @Trans(type = TransType.RPC,targetClassName = "com.fhs.test.pojo.User",fields = "schoolName",serviceName = "user")
    private String userId;

B    AutoTrans 添加 alias 支持

2、介绍

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

先看效果:

Easy_Trans 1.0.9 发布,新增跨微服务翻译

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.0.9</version>
        </dependency>

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

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

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

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

如果使用 Redis 请添加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",ref = "sexName")
    private Integer sex;

    //这个字段可以不写,实现了TransPojo接口后有一个getTransMap方法,sexName可以让前端去transMap取
    private String sexName;
    
    //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,看返回结果。

参与贡献和技术支持

如果遇到使用问题可以加QQ群:976278956

示例项目

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


以上所述就是小编给大家介绍的《Easy_Trans 1.0.9 发布,新增跨微服务翻译》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

关注码农网公众号

关注我们,获取更多IT资讯^_^


查看所有标签

猜你喜欢:

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

常用算法程序集

常用算法程序集

徐士良 编 / 清华大学 / 2004-1 / 48.00元

本书针对工程中常用的行之有效的算法而编写,其主要内容包括多项式的计算、复数运算、随机数的产生 、矩阵特征值与特征向量的计算、线性代数方程组的求解、非线性方程与方程组的求解、插值与逼近、数值积分、常微分方程组的求解、数学变换与滤波、特殊函数的计算、排序和查找。 书中所有的算法均用C语言描述,并存放在一张光盘上。 本书可供广大科研人员、工程技术人员以及管理工作者阅读使用,也......一起来看看 《常用算法程序集》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器