代码分层
Last updated
Last updated
代码核心分为三层:请求处理层、业务逻辑层和数据持久层。
对于采用消息驱动设计的系统,需要引入消息处理层;对于需要远程调用其他服务的系统,需要引入远程调用层,负责远程调用或接口适配等工作。
图中默认上层依赖于下层,箭头关系表示可直接依赖,如:消息处理层可以依赖于 业务逻辑层,也可以直接依赖于数据持久层,依此类推。其中黄框表示需要根据情况引入事务管理。
对外暴露 RESTful 接口,进行控制转发、参数处理、结果封装、异常处理等。
单条查询时,需要处理业务逻辑层返回的Optional
对象,获取实际对象或抛出异常。
核心业务逻辑处理。根据需要组合数据层、远程调用层等,完成业务逻辑操作,处理实体到DTO的转换,根据需要缓存数据或发送事件通知。
简单来说,业务逻辑层承担了除请求处理层和数据持久层之外的绝大多数职责。
单条查询时,应该返回数据的Optional
对象,由请求处理层进行进一步处理。
对于组合多个数据持久层的业务,通常需要增加事务控制。
与底层 MySQL、Oracle、Redis 等进行数据交互。
处理其他模块的消息,调用业务层进行处理,(如果需要)返回处理结果。
使用 Feign 或者其他技术定义的远程接口。