之前写过Flask构建Web API系列 Flask构建Web API Wheel(一)—— Python版本选择,现在想针对Java的Spring Boot也做一个相同的系列。

版本选择

对于Java版本,网上也一直有争议,“Java18都出来了,为什么还有人用Java8”,可能这就是执着吧,哈哈哈。对于Java版本,还是看企业的选择,但目前个人项目使用8是非常合适的,一个是用的人最多(毫无疑问),另一个是Java8的Lambda、Stream流等特性在开发中也十分够用。

对于Spring Boot版本,可以参照 Spring Boot 官网 选择代有 GA (稳定版本)、CURRENT(当前版本) 标签的版本即可。

项目结构

Spring Boot开发的项目分层有许多最佳实践,最简单的可以根据阿里巴巴的规范手册来执行,当然也可以加入一些自己的修改。

  • /log 日志目录
  • /src 源码目录
    • /main 主目录
      • /java 主包
        • /api 接口包
        • /bo 业务模型包
        • /common 通用包
          • /advice AOP通知包
          • /annotation 注解包
          • /configuration 配置包
          • /enumeration 枚举包
          • /exception 异常处理包
          • /interceptor 拦截器包
          • /util 工具包
        • /dto 传输模型包
          • /validator 验证包
        • /manger 第三方扩展包
        • /mapper 数据模型操作包
        • /model 模型包
        • /service 业务包
        • /vo 视图模型包
      • /resources 资源目录
    • /test 测试目录

这里对几个包进行解释,api 即通常的 controller 包,model 有时也写作 entity,mapper 有时也写作 dao、repository等。

这个项目结构可以发现 service 层级下面没有 impl 包,按照规范及面向抽象的思维,service包内是接口,impl才是service的实现,但是在大多情况下,一个接口只对应了一个实现,所以这里简化成了service层直接就是实现层了,最终分层可以参考公司规范,但这个项目结构也是一个不错的选择。


标题:Spring Boot构建Web API Wheel(一)—— 版本选择及项目结构组织
作者:Jeffrey