springboot 工程结构

项目的工程结构理论上来说并没有什么强制要求,我们可以把所有的业务逻辑写在接口方法中,这并不会影响我们项目的运行。

对于我而言,规范好自己的工程结构,对自己对别人都是很好的,不同结构各司其职,互不越界是我编写项目的规范之一。


下图是整合了阿里孤尽老师的《JAVA开发手册》中所提及的工程结构,我也是针对了该工程结构反思了自己先前的一些项目写法。

对于springboot项目而言,一个完整的请求大致会按顺序经过以下流程

  1. Filter与Interceptor 这两者的功能接近,但具体实现技术不同。通常会在该层进行简单的url处理或鉴权

  2. controllerAdvice 这是spring3.2提供的新注解,当前大多用于搭配@ExceptionHandler进行全局异常处理

  3. aspect 此处的aspect仅针对处理controller的aspect 通常我们会使用切面来实现一些非主业务的功能,例如日志、异常处理、权限控制等 但我个人而言,我并不喜欢在aspect进行权限控制,如下图所示,未授权的调用理应无法通过拦截器,而一旦通过拦截器,便默认拥有当次请求的操作权限。

  4. controller 通常所说的请求处理层,对请求的业务操作下放到具体的service处理,而自身仅仅做的是一些不复用的功能,例如参数校验。 尽可能别将业务逻辑直接写在controller层。

  5. service 完成具体的业务逻辑,实现与DAO或Mapper的数据交互。 个人而言,我觉得service层不进行参数校验这类不属于业务逻辑的工作。

  6. DAO或Mapper 与数据库直接交互

springboot的核心理念:约定优于配置。

所以项目结构的合理设计也是尤为重要,当然也要因地制宜,主要还是要合理、舒服即可

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值