作业
extend 选做
include 做完才能做下一步
状态 adj 状态图关注的是 状态、状态触发的条件·
简化代码逻辑、增加代码的复用,暴露接口供上层使用
分工 解耦的工作
客户增加 可以扩容增加更换员工服务员厨师
java为什么可以跨平台 ? Jvm
model service
contrller
view 页面
dao service web
表现层 app 页面 api 调用业务逻辑层(抽取通用业务逻辑层,发邮件短信)
dao mybaits 框架
第三方的服务 (防腐层)转换数据类型 状态码 屏蔽第三方的入侵,严禁将第三方的状态码放到我们的业务中
分层的目的就是
如果层里面发生异常怎么办
dao 超时,sql发生错误,直接向上抛出在service,manager写日志,跨服务器一定要写日志,A调用B一定要在当前服务器记录下来
web发生异常不能向上抛了,必须捕获跳转页面 eg:您的电脑有问题,web掉service可以在web处理
开放接口层,要转化成错误码
分层类型
层和层数据传输
DO:对应每一个数据表
DTO:系统,微服务交换数据的对象,对数据进行封装转换,不会将全部的字段传输,对象的序列化和反序列化(java对象)
BO:业务对象,一般有多个DO组成,可以把所有的字段放进去,自己用的对象
Query:查询条件 保证字段的参数名称是确定的,禁止map传输
VO:视图对象,前端展示需要的字段
构建工具
ant不能管理依赖
mavev 可以管理依赖,约定大于配置,坐标的位置,共享出去也是共享的坐标,从中心仓库找依赖就行 用xml配置
gradle 基本一致 配置语言不一样
Maven
1.进行依赖管理
2.统一的项目目录
3.清晰的项目阶段 clear 打包。。
4.支持各种插件来完成不同阶段
gav坐标
g:组织的名称 a:项目名称 v:版本
jar引用
1.dependencyManager(仲裁生命)在父工程进行锁定
没有dependencyManager 最短依赖原则确定jar
同一个pom 看顺序
有父工程定义过版本,自工程引用了父工程,自工程不需要定义版本
依赖冲突怎么解决? 用工具
依赖排除
移除tomcat使用jetty
二方库依赖
二方库:公司不同团队开发的不同模块(私服仓库)
从1.0.0开始 大版本 发展方向 大方向 大幅度的修改 差别很大
此版本 功能特性
修订号 bug
1.线上依赖不要依赖快照版本
2.release要有连续性
不要原封不动的吧全部的jar引用过来
开发的时候用servlet打包不会用使用provided引入
TCP/IP
不是两个协议是一个协议簇 最有代表的是TCP/IP
TCP/IP五层协议
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LOpeRdUm-1636013516266)(/Users/zhaokaijie/Library/Application Support/typora-user-images/image-20211102215739788.png)]
IP协议
TTL生存时间
TCP协议
三次握手
三次才能确认能不能发
四次挥手
尽快的回收资源30s
socket资源回收的是,不是端口资源,端口是比较丰富的
jvm出现oom一两个月会出现一次