全局说明

# 全局说明 ## 找内鬼(非常好用) ```bash netstat -aon|findstr "xxx" ``` ## 老文档 ![B52CA89488EBD0F47DBF2731396E7D2E.png](https://cos.easydoc.net/13568421/files/ljz4l5ej.png) ## 为什么永远不用外键? > 如果使用了外键, 每一次添加数据都要数据库去校验一次数据的合法性, 一旦数据量大了, 数据校验就会及其缓慢, 极大影响整体效率, 一定不能用!!! ## 为什么需要逻辑删除? > 便于数据恢复 ### 做法 ```yaml mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml global-config: db-config: id-type: auto logic-delete-value: 0 # 逻辑已删除值(默认为 1) logic-not-delete-value: 1 # 逻辑未删除值(默认为 0) ``` ```java @TableLogic private Integer showStatus; @Override public void logicDeleteCategories(Long[] catIds) { //TODO: 当该分类没有被使用的时候才能被删除 baseMapper.deleteBatchIds(Arrays.asList(catIds)); } // 这是两个不同的类!!! ``` ## Object的划分 ### PO(Persistent Object) 持久对象 > PO对应着数据库中某个表的一条记录, 多条记录可以使用PO的集合表示, PO不能有任何对数据库的操作 ### DO(Domain Object) 领域对象 > 将业务实体抽象出来的类对应的对象 ### TO(Transfer Object) 数据传输对象 > 微服务之间通信通过TO对象传输 > 在该项目中, TO置于common微服务, 因为TO是数据传输对象, 多个微服务均有引用, 因此需要声明在common中 ### DTO(Data Transfer Object) 数据传输对象 > 简要说明: 泛指展示层和服务层的数据传输对象 ### VO(View ObjeCt) 视图对象 > 简要说明: 视图层和控制层之间的传输对象 ### BO(Business Object) 业务对象 > 简要说明: 业务逻辑封装而成的对象 ### POJO(Plain Ordinary Java Object) 简单无规则Java对象 > 简要说明, 只要是对象, 就是POJO对象, 没有任何特性 ### DAO(Data Access Object) 数据访问对象 > 简要说明, DAO对象用于访问数据库 ## NGINX端口号监听的原理 > 首先明确, 如果想要监听某个端口号, 我们就需要有一个程序去专门占用这个端口号, 然后通过这个程序进行监听 > NGINX实现多端口监听的原因是其在这些端口号上启动了一个WEB服务, 通过这个WEB服务来监听端口号, 从而实现多端口监听