无规矩不成方圆,无规范不能协作
分层参数传递及命名流程
- dao层是数据层,直接进行数据库的读写操作,返回数据对象DO,DO与数据库表一一对应。
- service层为业务层,用来实现业务逻辑。能调用dao层或者service层,返回数据对象DO或者业务对象BO,BO通常由DO转化、整合而来,可以包含多个DO的属性,也可以是只包含一个DO的部分属性。通常为了简便,如果无需转化,service也可以直接返回DO。外部调用(HTTP、RPC)方法也在这一层,对于外部调用来说,service一般会将外部调用返回的DTO转化为BO。
- controller层为控制层,主要处理外部请求。调用service层,将service层返回的BO/DO转化为DTO/VO并封装成统一返回对象返回给调用方。如果返回数据用于前端模版渲染则返回VO,否则一般返回DTO。不论是DTO还是VO,一般都会对BO/DO中的数据进行一些转化和整合,比如将gender属性中的0转化“男”,1转化为“女”等。
职责要明确
controller层职责
1.参数校验
2.调用service层接口实现业务逻辑
3.转换业务/数据对象
4.组装返回对象
5.异常处理
service层职责
1.接收Controller层数据
2.与DAO层交互,处理业务逻辑
3.生成DTO数据并返回Controller层
dao层职责
1.数据库读写
2.向service层返回基本类型或DO
3.避免加入业务逻辑
参考阿里代码规范:阿里代码规范