文章详情页
java - 微服务架构中类的设计以及restful返回json数据
浏览:103日期:2023-10-28 13:07:42
问题描述
问题1: 在spring boot 实现的微服务架构中,各个服务之间的数据交互问题 说明
比如在服务架构中两个服务之间的交互,服务A中有一个数据model,服务B调用后,服务A 将此类型的模型返回给服务B ,服务B中就必须也定义一个这样的数据模型才能正确的接收数据这样会造成类的多次定义?
问题2:在spring中使用restful返回客户端数据时,会进行模型转json操作,但是对象中定义了很多属性,而客户端只需要其中部分属性对应的值,那么如何在返回客户端之前将其中不需要的或者无值的属性剔除?
问题解答
回答1:答1:RPC通信的数据传输格式常用的有 json、xml 或 自定义的二进制格式,一般都会事先约定好。既然都是不同的服务,一般都是不同的团队来维护的。再说解析接收对象的类不一定要完全与输出对象一致。
答2:一种做法是输出对象定义必要属性,将你的中间对象转换成最终要输出的对象,去除多余属性。或者在对象转json的时候剔除多余属性,spring 中提供了 @JsonIgnore 注解,对 bean 的多余属性添加该注解后,转换json对象时,就会忽略该属性。
回答2:Q1: bean可以定义在一个独立的module中, 服务A和服务B都依赖这个module即可。
Q2: json注解忽略或者采用dto的方式,只获取需要的属性。
标签:
java
相关文章:
1. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题2. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)3. MYSQL新建用户设置可以远程访问的问题4. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!5. java - mybatis怎么实现在数据库中有就修改,没有就添加6. mysql - SQL操作时间的函数?7. docker内创建jenkins访问另一个容器下的服务器问题8. 正则表达式 - python pandas的sep参数问题9. angular.js - angularjs的自定义过滤器如何给文字加颜色?10. docker api 开发的端口怎么获取?
排行榜
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)