一、用于存储数据的数据类
关于web中的数据类(例如User、Student),本人以往都是存在名为“entity”的包下。看了其他人项目的代码, 发现他们会根据该类的用途进行进一步区分,我个人也觉得这样很好,能够直接分辨出类的用途,当然这只是一种建议。
建议将“entity"包改名为"pojo",然后“pojo"包下新建四个包,分别为"vo"、“dto"、"bo"、“po"。
vo : 该包下的数据类主要用于返回给前端,后台有些字段是不需要或者不适合传给前端的,可以写一个vo数据类(例如UserVo),该类只包含前端需要的字段。
dto : 该类型的数据类主要用于dubbo之类的数据传输。
bo : 该类型本人没有用过,主要用于业务之间的调用。
po : 用于接收数据库的数据。
二、后台返回给前端的Resp类
本人将后台数据返回给前端,一般都会写一个Resp类,该类包含四个属性:
code : Int 返回的状态码
message : String 与code相关的描述信息
timestamp : Long 请求的时间戳
data : Any? 请求返回的数据
这样写存在一个问题,就是controller层甚至servie层接口返回的类型都是Resp,当你想知道Resp的data到底是什么类型的数据时,需要跳转到接口实现的部分去查看,这不直观,而且data传什么类型都可以,代码中有可能传了自己不想传的类型但又没发立即发现。
一个好的方法是使用泛型,Resp声明为Resp<T> , data : T?
这样接口返回时需要注明T的类型,如Resp<User>,这就很直观的看到该接口返回的类型了。
网友评论