- 提供单体spring-boot脚手架,进行快速开发。对于每次新建项目时,建包、日志、日志格式文件、数据库配置等等...通用功能的搭建太耽误我们的时间。使用的时候将他拉取下来修改文件夹名字,就搭建好了基础框架。
- 其实这个仓库更像是一个web项目,但是没有业务在其中。拉取本项目到本地打开其中有样例说明
- 通用异常CommonException.java
- 统一异常返回ExceptionController.java
- 接口,异常日志记录ApiLog.java
- redis工具类RedisConfig.java
- redis序列化RedisUtils.java
- 统一响应RespEntity.java
- 断言封装类AssertUtils.java
- 通用分页请求工具类CommonPageRequestUtils.java
- 文件下载上传类FileUtils.java
- SpringMvc相关的配置SpringMvcWebConfig.java
spring-boot-starter-web
:servletspring-boot-starter-aop
:aop编程spring-boot-starter-test
:模块测试spring-boot-starter-validation
:参数校验spring-boot-starter-data-redis
:redis集成mysql-connector-j
:MySQL驱动spring-boot-starter-jdbc
:基于MySQL驱动提供jdbc简单编程lombok
:get/set方法
hutool-all
:java语法糖knife4j-openapi3-jakarta-spring-boot-starter
:基于swagger的接口测试框架mybatis-plus-boot-starter
:用代码写SQL
- 项目中能使用并带有
Enable
的注解都已经加上
-
文件存放请按图说明来
-
传统的MVC开发到后面会发现,项目越来越臃肿,所以包结构采用DDD开发模式。详细内容见下图
./
└── main
├── java
│ └── com
│ └── template
│ ├── Application.java
│ ├── config
│ ├── controller
│ │ ├── exception
│ ├── core 脚手架提供的东西都在这里面
│ │ ├── log 日志监控包
│ │ ├── redis redis相关
│ │ ├── resp 同意响应包
│ │ ├── utils 工具包如下载
│ │ └── web web相关包
│ ├── domain 业务层
│ ├── exception 异常包
│ ├── filter 过滤器
│ ├── interceptor 拦截器
│ ├── repository dto层
│ └── utils 工具包
└── resources
├── application-dev.yml 数据库配置
├── application.yml 通用yml配置
├── logback-spring.xml logback日志样式
- 具体内容可以见DDD领域驱动设计
- MVC的开发模式:是数据驱动,自低向上的思想,关注数据。
- DDD的开发模式:是领域驱动,自顶向下,关注业务活动。
MVC VS DDD
- CQRS(Command Query Responsibility Segregation)是将Command(命令)与Query(查询)分离的一种模式。其基本思想在于:任何一个方法都可以拆分为命令和查询两部分:
- Command:不返回任何结果(void),但会改变对象的状态。Command是引起数据变化操作的总称,一般会执行某个动作,如:新增,更新,删除等操作。操作都封装在Command中,用户提交Commond到CommandBus,然后分发到对应的CommandHandler中执行。Command执行后通过Repository将数据持久化。事件源(Event source)CQRS,Command将特定的Event发送到EventBus,然后由特定的EventHandler处理。
- Query:返回查询结果,不会对数据产生变化的操作,只是按照某些条件查找数据。基于Query条件,返回查询结果;为不同的场景定制不同的Facade。
DDD开发流程
标准包结构:借鉴。