Easy_Trans 1.0.9 发布,新增跨微服务翻译
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 我有一个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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
人工智能 、机器学习、深度学习、神经网络,都有什么区别?
人工智能(AI) 、机器学习(ML)、深度学习(DL)、神经网络(CNN)这些术语通常可以互换使用,但有它们之间都有什么区别?如何区分它们? AI技术正越来越深入我们的日常生活,为了跟上消费者期望的步伐,企业也越来越依赖AI算法来让事情变得更容易。 这些技术通常与人工智能、机器学习、深度学习和神经网络相关联,虽然它们都发挥着作用,但这些术语往往互换使用,导致大众对它们之间的细微差别产生一些混淆。 今天我们会在本文章中详细介绍这几者之间的差别。 人工智能、机器学习、神经网络和深度学习有何关联? 或许思考人工智能、机器学习、神经网络和深度学习的最简单方法就是将它们想象成俄罗斯套娃。每个本质上都是前项的组成部分。 也就是说,机器学习是人工智能的一个子领域。 深度学习是机器学习的一个子领域,神经网络构成了深度学习算法的支柱。 事实上,区分单个神经网络与深度学习算法的,是神经网络的节点层数或深度,深度学习算法必须超过三层。 什么是神经网络? 神经网络——更具体地说,人工神经网络 (ANN)——通过一组算法模拟人脑。 在基本层面上,神经网络由四个主要部分组成:输入、权重、偏差或阈值以及输出。 ...
- 下一篇
分布式监控系统 WGCLOUD,基础组件升级提升性能
WGCLOUD是一款集成度较高的分布式运维监控系统,具有易部署、易上手使用、轻量、高效等特点,server端基于springboot开发,agent端使用go编写。核心模块包括:主机系统信息监控,CPU监控,CPU温度监控,内存监控,网络流量监控,磁盘IO监控,磁盘空间监测,系统负载监控,硬盘smart健康检测,应用进程监控,端口监控,docker监控,日志文件监控,文件防篡改保护,数据可视化监控,自动生成拓扑图、大屏可视化,数通设备监测,服务接口监测,web ssh堡垒机,指令批量下发执行,告警信息(邮件、钉钉、微信等)推送。 码云源码下载:https://gitee.com/wanghouhou/wgcloud GITHUB源码下载:https://github.com/tianshiyeben/wgcloud 官网:http://www.wgstart.com 支持运行系统 支持监测Linux系列:Debian、RedHat、CentOS、ubuntu、麒麟、统信、龙芯、树莓派等 支持监测windows系列:windows server2003以上(不含2003),win7,wi...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS关闭SELinux安全模块
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Thymeleaf,官方推荐html解决方案