领域驱动设计 + SpringBoot微服务项目框架搭建

最近,有幸和ThoughtWorks的同事一起参与了项目开发。
总结一下开发过程中学习到的一些知识和工具。
1、领域驱动设计搭建spring boot项目基本框架(也涉及微服务拆分)
2、利用flywaydb插件进行数据库版本控制
3、利用dbunit框架进行单元测试数据库记录操作
4、checkstyle检查java的编码命名
5、jacoco检查代码单元测试覆盖率

项目代码目录结构

1、com.china.demo 源码文件夹目录

---application   //应用层,供controller层调用,调用service层功能,一般不允许跨层调用(如调用infrastructure层的类)
---controller
    ---assembler  // 组合层,对于通过application层不能直接提供的数据模型,在该层组合。
    ---common    // 公共层,包含公共逻辑类,如http上下文处理(用户相关信息获取等)
    ---dto            // 数据转换层(请求/响应与领域模型之间的转换)
        ---request     // 请求的数据模型
        ---response  // 返回响应的数据模型
    ---exception    // 存放拦截异常的类
---domain           // 领域模型层。所有的模型和业务逻辑(包括领域类、service类、repository类)。只能调用infrastructure层,不能调用外层(其他业务application和service)
     ---exception   // 用于存放通用的异常处理类和异常处理逻辑
     ---xxx             // 领域模型
          ---xxx.java                    // 领域模型属性类
          ---xxxRepository.java  // 访问数据层的接口
          ---xxxService.java       //  该领域模型的业务逻辑,(可以调用其他领域service类)
---infrastructure
     ---agent     // 对接第三方系统
          ---dto   // 请求第三方系统的数据模型
     ---persistence  //持久化层
          ---xxx          //某个数据模型
               ---xxxDBO.java   // 数据模型类,支持与领域模型类之间互相转化
               ---xxxMapper.java // mapper类,单表查询不需要写任何代码,利用tk.mybatis框架接口即可。
          ---xxxRepositoryImpl.java // 具体业务数据库查询逻辑
---Appliction.java

2、resource文件夹目录

---db
    ---migration   //flyway框架实现数据库表修改
    ---mapper  // 多表查询的xml脚本目录
---application.yml
---application-dev.yml
---application-st.yml
---application-uat.yml
---application-prd.yml

3、test文件夹目录

com.china.demo  //测试利用DBunit框架完成数据库记录操作。
    ---controller // controller接口测试
    ---domain  // 领域层业务逻辑测试

5、根目录的checkstyle和jacoco

/根目录
   ---config
       ---checkstyle
           ---checkstyle.xml  代码检查的具体规则定义
   ---gradle
       ---jacoco.gradle   用于检查项目代码的单元测试覆盖率  要求>80%

6、代码仓库地址

https://github.com/WeijianPeng/springboot_demo

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝亦

感谢博主辛勤的付出

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值