Day8-工程结构规约

192 阅读3分钟

一、应用分层

(1)作用

  1. 隐藏下层业务逻辑的复杂性
  2. 提高系统的组件化和可维护性

(2)为什么要分层

  1. 分工协作效率高
  2. 计算机领域的任何问题都可以通过增加一个中间层解决(扩展性)
  3. 增加可维护

(3)MVC架构模式

image.png

(4)推荐分层结构

image.png

(5)分层异常处理

image.png

(6)分层领域模型

image.png

  • DO:一般与数据库表一一对应
  • DTO:需要的字段进行封装,不是所有,涉及对象的序列化和反序列化(不与外部系统交互不使用dto)(json也是序列化的形式)
  • BO:是多个DO的的组合(如:controller调service)
  • Query:禁止Map传输,Map里的key不确定(如:controller接受参数的实体)
  • VO:传给页面的数据

二、Maven

(1)作用

  • 管理项目中的依赖
  • 对项目进行构建

(2)什么叫做构建

image.png

  • 构建:根据项目需要,可以选择编译,清除,打包等操作

(3)Java项目构建工具

  • Ant:能构建,前期不能管理依赖,现在升级后可以了,已经过时。
  • Maven:能构建,能管理依赖,有不同的目录结构。
  • Gradle:适用安卓,可以和Maven共享仓库,Groovy编写。

(4)Maven的主要功能

  • 依赖管理
  • 规范目录结构
  • 完整的项目构建阶段
  • 支持多种插件

(5)什么是GAV

  • G:groupId,组织,kkb
  • A:artifactId,项目专的唯一的标识符,t31
  • V:version,版本

(6)Maven的依赖仲裁

  • Ps:本jar包,进行确定一个,需要仲裁 image.png

  • 按照DependencyManager版本声明进行仲裁。父工(程进行指定,子工程无需指定)

  • 如无仲裁声明,则按照依赖最短路径确定版本。

  • 若相同路径,则按照第一声明有限原则。(pom文件中哪个在前就依赖哪个)

  • Ps:路径Dependency里的version,当前pom里的DependencyManager,父工程里定义的

(7)Maven排除依赖

image.png

  • 依赖冲突该用什么思路解决
  • 使用idea企业版的show Dependency按钮 image.png
  • 使用idea社区版的Maven Helper插件 image.png
  • 使用maven命令(不好用) image.png

三、二方库依赖

(1)作用

  • 定义GAV规则及版本号规则
  • 定义二方库发布及引用规则

(2)什么是二方库

image.png

(3)二方库中GroupID,ArtifactID的定义

image.png

(4)二方库中Version的命名方式

image.png

(5)二方库引用规约

image.png

  • 使用maven命令查看最终jar包版本 image.png image.png
  • 第5点,返回值可能在客户端中没有定义

(6)二方库引用建议

image.png

(7)二方库发布原则

image.png

四、TCP/IP

(1)解释

  • 在多个不同网络间实现信息传输的协议簇

(2)TCP/IP的五层结构

image.png

(3)IP协议的报头

image.png

(4)TCP协议的报头

image.png

(5)如何清晰回答好TCP的三次握手

image.png

image.png

image.png

image.png

image.png

(6)TCP四次挥手断开连接

image.png

image.png

  • 谁发起谁等待
  • 资源是socket连接资源,默认是1024,不是端口资源

image.png

image.png

五、服务器设定

(1)目的

  • 高并发服务器配置与规约

(2)高并发服务器参数调优

image.png

image.png