项目分层笔记

最近公司重构系统,同事指出了之前很多规范上的不足,现记录一下:


项目分层笔记_第1张图片
image.png

1、controller层:Java web MVC的路由,职责就是路由请求,校验参数(切面统一处理),返回结果和友好提示(异常处理)。方法参数最好用一个继承了BaseRequest的Request对象封装,避免但id,name等作为形参,因为如果方法后期需要增加请求的参数的话,直接在对象里面添加属性就好了,就不需要改动方法的结构了。还可以对BaseRequest基类做统一的切面校验处理。

2、service层:为了支持后续的服务化,service层要求有一套统一的数据结构,如都是BaseRequest入参,返回BaseResponse,BaseResponse里面不仅包含返回的数据还包含返回的结果编码,提示信息等。这一层需要把Request和Entity做一层转换,方便给dao层做数据操作。

3、dao层:这一层必须职责单一化,就是数据的增删查改,对象都是Entity类而不能出现Request对象,使用Entity类配合使用JPA注解,单表的操作都大大简化了,
对于联表查询,在Entity里面不跟数据库映射的属性打上@Transient注解就不会报错了,在service层Request转Entity的时候可以方便的转换。

你可能感兴趣的:(项目分层笔记)