实际开发中常常遇到的问题 或是 遵守的规则
1. 实体类规范
- DTO:数据传输对象,在客户端与服务端间传递数据,例如微服务之间的请求参数和返回值、前端提交的表单
- PO:持久层对象,与数据库表一一对应,作为查询数据库时的返回值
- VO:视图对象,返回给前端用于封装页面展示的数据
- QUERY:查询对象,一般是用于封装复杂查询条件
2. 登陆拦截器
在使用登录拦截器时,可以再拦截检查后将用户数据存入ThreadLocal中(因为传入Controller中的处理器方法的参数只能被读取一次, 防止拦截请求参数检查后,接收不到参数而报错, 读取参数的流只能被使用一次)供该线程其他业务使用.
3. Hutool工具类库
hutool是一个较为全面的工具类库.详情请看官网.
hutool: 🍬小而全的Java工具类库,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 (gitee.com)
手动创建线程池
手动创建线程池,效果会更好哦_hello_cmy的博客-CSDN博客_手动创建线程池,效果会更好哦。
4. Maven 知识
聚合:父工程通过 modules 标签,将子模块聚集起来,好处是方便管理,父工程执行maven命令,所有子模块都会执行
继承:子模块通过parent标签,可以从父工程继承一些依赖。
Maven子工程继承父工程
利用Maven可以对项目进行分模块开发。那么怎样把各个模块整合到一起呢?这就利用了Maven继承的特性。一般是每个模块都继承一个父工程。
几个注意的地方:
(1)父工程的packaging是pom
(2)父工程中定义属性,子模块不用定义,会继承下来
(3)父工程的依赖放在dependencyManagement中,这样子模块才能继承父工程的依赖
(4)父工程的pom.xml文件中定义了modules,整合子模块的artifactId
(5)子模块的pom.xml文件中定义了parent标签,里面是父工程的gav
(6)子模块只需定义自己的artifactId
(7)子模块如果继承父工程的依赖可以不写版本,但是如果父工程中没有该依赖,那么子模块必须写完整的gav(坐标)
Maven 生命周期
Maven共有三套生命周期
第一套:clean 清理
第二套:default(compile 编译、test测试、package打包、install安装)
第三套:site站点(deploy部署)
三套生命周期相互独立,但是在同一套生命周期内部,执行后面命令时,会依次执行前面的命令
5. Git Flow
6. 开发一个新业务的一般流程
在此之前需求调研和产品原型是大前提必须在有两者的情况下,才成立。
- 分析产品原型
- 设计数据结构
- 实现功能接口
- 粗粒度:比如课程有查询、删除、新增等。
- 细粒度:接口四要素:请求方法(GET、POST)、请求参数、请求路径、响应结果。
- 测试
- 单元测试
- 集成测试
- 联调