diff --git a/Java/Docker指南.md b/Java/Docker指南.md
index 3054845..92192fb 100644
--- a/Java/Docker指南.md
+++ b/Java/Docker指南.md
@@ -20,7 +20,7 @@ Docker为了解决依赖的兼容问题的,采用了两个手段:
- 将每个应用放到一个隔离**容器**去运行,避免互相干扰
-
+
这样打包好的应用包中,既包含应用本身,也保护应用所需要的Libs、Deps,无需在操作系统上安装这些,自然就不存在不同应用之间的兼容问题了。
@@ -50,13 +50,13 @@ Docker是一个CS架构的程序,由两部分组成:
如图:
-
+
#### 镜像操作
-
+
1. docker push,将本地镜像上传到远程仓库(例如 Docker Hub)
@@ -102,7 +102,7 @@ docker build -t yourusername/myimage:latest .
#### 容器操作
-
+
1. docker run 创建并运行一个新容器
@@ -176,7 +176,7 @@ docker ps -a #查看所有容器,包括已经停止或启动失败的容器
**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。
-
+
一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。
@@ -507,7 +507,7 @@ docker info
我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。
-而描述上述信息的文件就是Dockerfile文件 。
+而描述上述信息的文件就是Dockerfile文件 。
`EXPOSE 8090` 是一个声明性的指令,`EXPOSE` 本身不会进行端口映射
@@ -672,7 +672,7 @@ docker push yourusername/zbparse #推送镜像到 Docker Hub
docker tag zbparse 646228430smile/zbparse:latest 这里的646228430smile是用户名,保持不变
-
+
14. 查看镜像
@@ -1145,7 +1145,7 @@ docker-compose -f docker-compose-app.yml up -d
查看课前资料提供的cloud-demo文件夹,里面已经编写好了docker-compose文件,而且每个微服务都准备了一个独立的目录:
-
+
内容如下:
@@ -1194,11 +1194,11 @@ services:
查看mysql目录,可以看到其中已经准备好了cloud_order、cloud_user表:
-
+
查看微服务目录,可以看到都包含Dockerfile文件:
-
+
内容如下:
@@ -1253,7 +1253,7 @@ spring:
打包后:
-
+
#### 拷贝jar包到部署目录
@@ -1261,15 +1261,15 @@ spring:
user-service:
-
+
order-service:
-
+
gateway:
-
+
#### 部署
@@ -1277,7 +1277,7 @@ gateway:
上传到任意目录:
-
+
部署:
diff --git a/Java/JavaWeb——前端.md b/Java/JavaWeb——前端.md
index b0c5206..1849b91 100644
--- a/Java/JavaWeb——前端.md
+++ b/Java/JavaWeb——前端.md
@@ -2,15 +2,15 @@
## JavaWeb学习路线
-
+
## 前后端分离开发
-
+
-
+
1. 需求分析:首先我们需要阅读需求文档,分析需求,理解需求。
2. 接口定义:查询接口文档中关于需求的接口的定义,包括地址,参数,响应数据类型等等
@@ -146,9 +146,9 @@
盒子模型,盒子部分指的是border及以内的部分,不包括margin
-
+
-
+
@@ -365,7 +365,7 @@ const: const pi=3.14
| 逻辑运算符 | && , \|\| , ! |
| 三元运算符 | 条件表达式 ? true_value: false_value |
-
+
parseint() ,将其他类型转化为数字
@@ -701,7 +701,7 @@ DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML
- Text:文本对象
- Comment:注释对象
-
+
那么我们学习DOM技术有什么用呢?主要作用如下:
@@ -763,7 +763,7 @@ for (let i = 0; i < divs.length; i++) {
你想要如何操作获取到的DOM元素,你需要查阅手册,看它支持的属性
-
+
```
var divs = document.getElementsByClassName('cls');
@@ -821,7 +821,7 @@ MVVM:其实是Model-View-ViewModel的缩写,有3个单词,具体释义如下
- View: 视图,用于展示数据的页面,可以理解成我们的html+css搭建的页面,但是没有数据
- ViewModel: 数据绑定到视图,负责将数据(Model)通过JavaScript的DOM技术,将数据展示到视图(View)上
-
+
基于上述的MVVM思想,其中的Model我们可以通过Ajax来发起请求从后台获取;对于View部分,我们将来会学习一款ElementUI框架来替代HTML+CSS来更加方便的搭建View;而今天我们要学习的就是侧重于ViewModel部分开发的vue前端框架,用来替代JavaScript的DOM操作,让数据展示到视图的代码开发变得更加的简单。
diff --git a/Java/JavaWeb——后端.md b/Java/JavaWeb——后端.md
index dcf2328..f9ffceb 100644
--- a/Java/JavaWeb——后端.md
+++ b/Java/JavaWeb——后端.md
@@ -39,9 +39,9 @@
## Maven
-
+
-
+
Maven仓库分为:
@@ -57,7 +57,7 @@ POM文件导入依赖的时候,先看本地仓库有没有,没有就看私
**创建Maven项目**
-
+
勾选 **Create from archetype**(可选),也可以选择 **maven-archetype-quickstart** 等模版。
@@ -175,7 +175,7 @@ Maven 重建
* Maven中的坐标是==资源的唯一标识== , 通过该坐标可以唯一定位资源位置
* 使用坐标来定义项目或引入项目中需要的依赖
-
+
### 依赖管理
@@ -201,7 +201,7 @@ Maven 重建
更改之后可以在界面上看到一个maven刷新按钮,点击一下就开始联网下载依赖了,成功后可以看到
-
+
#### 排除依赖
@@ -280,7 +280,7 @@ A依赖B,B依赖C,如果A不想将C依赖进来,可以同时排除C,被
4. 双击test生命周期
-
+
## HTTP协议
@@ -315,14 +315,14 @@ A依赖B,B依赖C,如果A不想将C依赖进来,可以同时排除C,被
浏览器与 Tomcat 之间通过 HTTP 协议进行通信,而 Tomcat 则充当了中间的桥梁,将请求路由到你的 Java 代码,并最终将处理结果返回给浏览器。
-
+
### 快速启动
1. 新建spring initializr module
2. 删除以下文件
-
+
新建HelloController类
@@ -416,7 +416,7 @@ public class RequestController {
- **请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套实体类属性参数。**
-
+
```
@RequestMapping("/complexpojo")
@@ -464,7 +464,7 @@ public class RequestController {
}
```
-
+
#### JSON格式参数
@@ -506,7 +506,7 @@ json数组:
Postman发送JSON格式数据:
-
+
服务端Controller方法接收JSON格式数据:
@@ -583,7 +583,7 @@ public class RequestController {
下图返回值分别是字符串、对象、集合。
-
+
统一的返回结果使用类来描述,在这个结果中包含:
@@ -627,7 +627,7 @@ public class Result {
Controller层接收请求,调用Service层;Service层先调用Dao层获取数据,然后实现自己的业务逻辑处理部分,最后返回给Controller层;Controller层再响应数据。可理解为递归的过程
-
+
**但是**,这样每次要更换ServiceA->ServiceB时,需要修改Controller层的代码!
@@ -644,7 +644,7 @@ private EmpService empService=new EmpServiceB(); //现在
#### IOC&DI 分层解耦
-
+
任务:完成Controller层、Service层、Dao层的代码解耦
@@ -659,19 +659,19 @@ private EmpService empService=new EmpServiceB(); //现在
第1步:删除Controller层、Service层中new对象的代码
-
+
第2步:Service层及Dao层的实现类,交给IOC容器管理
- 使用Spring提供的注解:@Component ,就可以实现类交给IOC容器管理
-
+
第3步:为Controller及Service注入运行时依赖的对象
- 使用Spring提供的注解:@Autowired ,就可以实现程序运行时IOC容器自动注入需要的依赖对象
-
+
@@ -841,7 +841,7 @@ http://localhost:8080/users/1 DELETE:删除id为1的用户
### 开发流程
-
+
1. 查看页面原型明确需求
- 根据页面原型和需求,进行表结构设计、编写接口文档(已提供)
@@ -861,11 +861,11 @@ http://localhost:8080/users/1 DELETE:删除id为1的用户
### 快速创建
-
+
1. 创建springboot工程,并导入 mybatis的起步依赖、mysql的驱动包。创建用户表user,并创建对应的实体类User
-
+
2. 在springboot项目中,可以编写main/resources/application.properties文件,配置数据库连接信息。
@@ -882,7 +882,7 @@ spring.datasource.password=1234
3. 在引导类所在包下,在创建一个包 mapper。在mapper包下创建一个接口 UserMapper
-
+
@Mapper注解:表示是mybatis中的Mapper接口
@@ -976,7 +976,7 @@ public interface EmpMapper {
}
```
-
+
上图参数值分离,有效防止SQL注入
@@ -1007,7 +1007,7 @@ useGeneratedKeys = true表示获取返回的主键值,keyProperty = "id"表示
- 实体类属性名和数据库表查询返回的字段名一致,mybatis会自动封装。
- 如果实体类属性名和数据库表查询返回的字段名不一致,不能自动封装。
-
+
解决方法:
@@ -1073,7 +1073,7 @@ public interface EmpMapper {
3. XML映射文件中sql语句的**id**与Mapper接口中的**方法名**一致,并保持返回类型一致。
-
+
\