🐍 项目的结构还是需要定义好,不然随随便便就需要改动很大,思索下来目前的模块原则就定义为

    • xxxx-api
    • 主要包含接口和一些基础的其他业务需要使用到的东西
    • XxxxxService 接口
    • 公共Utils方法
    • xxxx-model
    • 主要包含前端对接的dto/vo,以及数据库层面的model等等
    • 不包含xxxx-api模块
    • xxxx-commons
    • 包含xxxx-api和xxxx-model模块
    • 提供一些基础的util方法,自用,不对外暴露,如果需要对外写在xxxx-api模块当中
    • xxxx-orm
    • 仅包含基础的mapper接口和mapper.xml文件,其他不表
    • xxxx-service
    • 核心的业务模块,所有的业务都从这里处理,可以集中处理事务,业务逻辑等等,同时也可以作为暴露dubbo服务的一层逻辑
    • 一份公共的配置文件,不论是dev/test/prod环境都通用的配置
    • 支持service模块配置启动

      Service 本身就是可以单独启动的一个SpringBoot项目

    • xxxx-web
    • 对外提供http接口,这一层仅仅是提供用户信息和参数的娇艳,剩下的全部数据全部传递到xxxx-service模块进行处理
    • 所有的http接口全部采用xxxxRequest/xxxxResponse进行参数接受和响应
    • 基础的web模块配置
    • 静态文件配置
    • 全局异常配置
    • 过滤器/监听器配置
    • [ ] dubbo服务配置


      也不一定要100%按照这个思路来,灵活是最重要的,例如我有3个模块要起web服务,分别是task, web1 和 web2,那么在这里边的一些通用的配置可以提取到Service模块。 本身Service又是可以单独启动的,更好测试。