diff --git a/Spring/Spring5/00 概述.md b/Spring/Spring5/00 概述.md
new file mode 100644
index 00000000..23bdeab9
--- /dev/null
+++ b/Spring/Spring5/00 概述.md
@@ -0,0 +1,80 @@
+## 1 概述
+> 参考教程
+> [尚硅谷Spring5课程]()
+
+
+> 主要内容架构
+> * 基本概念
+> * IOC容器
+> * AOP
+> * Jdbc
+> * 事务
+> * Spring5-webflux
+### 概念
+
+* 开放源代码的JavaEE应用程序框架
+* 针对bean的生命周期进行管理的轻量级容器
+
+### 特点
+
+* 解决应用开发的复杂性。降低JavaApi的使用
+* 方便解耦,简化开发。
+* AOP变成支持
+* Test方便测试
+* integeration方便整合集成
+* 方便进行事务操作
+
+### 核心
+
+* IOC:控制反转,把创建对象的过程交给Spring进行挂历。
+* Aop:面向切面,不修改源代码的情况下,进行功能的增强。
+
+
+## 2 入门实例
+
+1. 创建普通java工程。
+2. 将jar包导入指定目录下,并添加idea以来路径。
+
+
+3. 使用bean标签完成spring配置
+
+```java
+
+
+
+
+
+
+```
+4. spring加载xml文件,获取bean对象
+ 1. 最简单的使用方式,所以spring本质上是一种轻量级的框架。
+ 2. 将bean放到context中
+ 3. 从context中获取指定id的Bean。
+
+```java
+package com.ykl.testdemo;
+
+import com.ykl.User;
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author yinkanglong
+ * @version : Test01, v 0.1 2022-10-08 11:27 yinkanglong Exp $
+ */
+public class Test01 {
+ @Test
+ public void testAdd(){
+// 加载spring的配置文件
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
+// 获取配置创建的对象
+ User user = context.getBean("user", User.class);
+ System.out.println(user);
+ user.add();
+ }
+
+}
+```
\ No newline at end of file
diff --git a/Spring/Spring5/01 IOC Container.md b/Spring/Spring5/01 IOC Container.md
new file mode 100644
index 00000000..533c5db5
--- /dev/null
+++ b/Spring/Spring5/01 IOC Container.md
@@ -0,0 +1,551 @@
+## 1 IOC容器原理
+### IOC概念
+* 控制反转。把对象创建和对象调用的过程,交给Spring进行管理。
+* 使用IOC的目的:降低代码耦合度。
+
+
+### 底层原理
+
+
+* xml解析
+* 工厂模式
+* 反射
+
+
+1. java对象调用的过程
+
+```java
+class UserDao{
+ add(){
+
+ }
+}
+public class UserService{
+ public void execute(){
+ UserDao dao = new UserDao();
+ dao.add();
+ }
+}
+```
+2. 使用工厂模式
+
+```java
+class UserDao{
+ add(){
+
+ }
+}
+class UserFactory{
+ public static UserDao getDao(){
+ return new UserDao();
+ }
+}
+
+class UserService{
+ execute(){
+ UserDao dao = UserFactory.getDao();
+ dao.add();
+ }
+}
+```
+
+3. IOC模式实现。通过xml解析、工厂模式、反射,进一步降低耦合度。
+ 1. 创建xml配置文件
+ 2. 创建工厂类,解析xml,使用IOC机制创建对象。
+ 3. 降低耦合度,不依赖java对象,而是通过配置文件决定具体实例化的对象。根据id查找class.forName(className),加载字节码文件,通过Instance方法,实例化对象。值依赖一个ClassName的字符串。可以随时更改,而不用依赖具体的包名、对象名和对象中的构造方法。
+
+
+
+```xml
+
+```
+```java
+class UserDao{
+ add(){
+
+ }
+}
+class UserFactory{
+ public static UserDao getDao(){
+ String classValue = class属性值;//XML解析
+ Class classzz = Class.forName(classValue)//通过反射创建对象。
+ return (UserDao)clazz.newInstance();
+ }
+}
+
+class UserService{
+ execute(){
+ UserDao dao = UserFactory.getDao();
+ dao.add();
+ }
+}
+```
+## 2 IOC接口BeanFactory&ApplicationContext
+
+IOC思想是基于IOC容器完成的,IOC容器底层就是对象工厂(工厂通过xml文件解析类名,通过反射机制创建对象实例)。
+
+### 实现方法
+Spring提供了IOC容器实现的两种方式。耗时耗资源的操作,尽量在初始化的时候完成,所以ApplicationContext这个接口更常使用。
+
+* BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供给开发人员使用。
+ * 加载配置文件的时候,不会创建对象。在获取(使用)对象的时候,才去创建对象。
+* ApplicationContext。BeanFactory接口的子接口,提供了更多更强大的功能,一般由开发人员进行使用。
+ * 加载配置文件的时候就会把配置文件对象进行创建。
+
+### BeanFactory
+继承结构如下,有多种子接口和实现方法
+
+
+### ApplicationContext
+
+继承结构如下
+
+
+* FileSystemXmlApplicationContext,存储盘下的xml路径
+* ClassPathXmlApplicationContext,是src下的类路径
+
+### IOC操作Bean
+
+* Spring创建对象——依赖倒置
+* Spring注入属性——依赖注入
+
+主要两种方式
+* 基于XML的方式
+* 基于注解的方式
+## 3 IOCBean管理基于XML方式
+
+### 基于XMl方式创建对象
+```xml
+
+id:对象唯一标识
+class:创建对象的类全路径,包类路径
+name:对象名称标识
+```
+* 在Spring给你配置文件中,使用bean标签,标签里添加对应属性。实现对象的创建
+* bean中有很多属性
+* 创建对象的时候,执行午餐构造函数。
+
+
+### 基于XML方式注入属性
+> DI依赖注入,就是注入属性。
+
+* 原始的属性注入方法
+
+
+```java
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl;
+
+/**
+ * @author yinkanglong
+ * @version : Book, v 0.1 2022-10-08 14:32 yinkanglong Exp $
+ */
+public class Book {
+ private String name;
+
+ //set方法注入
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ //有参构造函数注入
+ public Book(String name){
+ this.name = name;
+ }
+
+ public Book(){
+
+ }
+
+ public static void main(String[] args) {
+ //使用set方法注入
+ Book book = new Book();
+ book.setName("123");
+
+ //使用有参构造函数注入
+ Book book = new Book("abc");
+ }
+}
+```
+
+
+* 第一种方法:使用set方法进行注入.
+ * 创建属性和属性对应的set方法。
+ * 在Spring配置文件配置对象创建和属性注入。
+ * 加载配置文件获取指定的对象。
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+```java
+ @Test
+ public void testBook(){
+
+// 在创建对象的过程中就完成了属性的注入
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
+
+ Book book = context.getBean("book", Book.class);
+
+ System.out.println(book.getName());
+
+ }
+```
+* 第二种方法:使用有参构造函数进行注入
+ * 创建类和属性,创建对应属性的有参构造方法。
+```java
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl;
+
+/**
+ * @author yinkanglong
+ * @version : Order, v 0.1 2022-10-08 14:47 yinkanglong Exp $
+ */
+public class Order {
+ private String oname;
+ private String address;
+
+ public Order(String oname, String address) {
+ this.oname = oname;
+ this.address = address;
+ }
+}
+```
+ * 通过有参构造方法创建对象进行依赖注入
+```xml
+
+
+
+
+constructor-arg
+name 名称
+value 值
+index 参数列表
+```
+* p名称空间注入方法
+ * 用于简化xml的配置方法。在beans里添加p命名空间
+ * 在bean标签里添加键值对。
+```xml
+
+
+
+
+```
+
+### xml注入其他类型的属性
+* 字面值,空值null
+```xml
+
+
+
+```
+* 字面值,包含特殊符号
+ * 把特殊符号进行转义
+
+```xml
+
+
+```
+ * 把特殊符号写到CDATA中
+```xml
+
+
+>]]>
+
+
+```
+* 级联Bean——外部bean注入
+ * 创建service和dao类
+ * 在配置文件中配置注入操作
+ * 测试类,测试是否注入成功
+
+```java
+
+public class UserService {
+
+ public UserDao getUserDao() {
+ return userDao;
+ }
+
+ public void setUserDao(UserDao userDao) {
+ this.userDao = userDao;
+ }
+
+ UserDao userDao;
+
+
+ public void add(){
+ System.out.println("service add ...");
+
+ userDao.update();
+ }
+}
+public class UserDaoImpl implements UserDao{
+
+ @Override
+ public void update(){
+ System.out.println("dao update ...");
+ }
+}
+```
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+```
+```java
+public class Test02 {
+ @Test
+ public void testAdd(){
+// 加载spring的配置文件
+ ApplicationContext context = new ClassPathXmlApplicationContext("bean02.xml");
+
+ // 获取配置创建的对象
+ UserService user = context.getBean("userService", UserService.class);
+ user.add();
+ }
+}
+```
+* 级联Bean——内部bean
+ * 一对多关系:部门和员工。
+ * 在实体类之间表示一对多的关系。
+```xml
+
+
+
+
+
+
+
+
+
+
+
+```
+> 数据库3BNF范式的要求:
+> 一对多的关系,需要在多的一方添加外键,指向一。
+> 多对多的关系,需要拆分出关系类。任意一方和关系类都是一对多的关系。
+
+* 级联赋值
+ * 外部bean注入
+ * 给外部bean的属性赋值
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### xml注入集合属性
+* 注入数组类型属性、List集合类型属性、Map集合类型属性
+ 1. 创建集合类型的属性。
+ 2. 注入集合类型的属性
+
+```java
+/**
+ * Alipay.com Inc.
+ * Copyright (c) 2004-2022 All Rights Reserved.
+ */
+package com.ykl.collectiontype;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author yinkanglong
+ * @version : Student, v 0.1 2022-10-08 16:01 yinkanglong Exp $
+ */
+public class Student {
+ private String[] courses;
+
+ private List list;
+
+ private Map maps;
+
+ private Set sets;
+
+ public Student() {
+ }
+
+ public void setList(List list) {
+ this.list = list;
+ }
+
+ public void setMaps(Map maps) {
+ this.maps = maps;
+ }
+
+ public void setSets(Set sets) {
+ this.sets = sets;
+ }
+
+ public void setCourses(String[] courses) {
+ this.courses = courses;
+ }
+
+ @Override
+ public String toString() {
+ return "Student{" +
+ "courses=" + Arrays.toString(courses) +
+ ", list=" + list +
+ ", maps=" + maps +
+ ", sets=" + sets +
+ '}';
+ }
+}
+```
+```xml
+
+
+
+ java
+ c
+
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+
+
+ msyql
+ redis
+
+
+
+
+```
+* XML注入集合中对象类型
+```xml
+
+ ......
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+* 使用新的命名空间进行注入
+ * 在spring配置文件中引入util命名空间
+ * 提取list集合类型的属性注入。
+```xml
+
+
+
+
+ zhangsan
+ xiaosan
+
+
+
+
+
+
+
+```
+
+### 普通bean和工厂bean
+* 普通bean:在配置文件中定义的Bean类型就是返回类型
+* 工厂bean:在配置文件中定义的Bean类型和返回类型可以不一样。
+
+
+工厂bean的实现方法
+* 创建类,让这个类作为工厂bean。实现接口factoryBean
+* 实现接口里面的方法,在实现的方法中定义返回bean类型。
+
+
+
+
+
+## 4 IOCBean管理基于注解方式
+
+
+
+> 包的两种作用
+> * 水平分层——层次。位于不同的层次,应该在包的某个字段体现出来。service层、view层、dao层等。
+> * 垂直分割——功能。同一个功能在不同层次有不同力度的对应和实现,应该在包类的某个字段体现出来。包括book功能,sell功能等。
+> 一个包类路径的命名(功能结构或者说项目架构),应该是水平分层和垂直分割方法的交替。
\ No newline at end of file
diff --git a/Spring/Spring5/02 AOP.md b/Spring/Spring5/02 AOP.md
new file mode 100644
index 00000000..de9dd5c6
--- /dev/null
+++ b/Spring/Spring5/02 AOP.md
@@ -0,0 +1,9 @@
+## 1 AOP基本概念
+
+
+
+
+## 2 AOP底层原理
+
+
+## 3 AOP操作
\ No newline at end of file
diff --git a/Spring/Springframework/SpringFramework简介.md b/Spring/Spring5/03 ORM Data JDBC.md
similarity index 100%
rename from Spring/Springframework/SpringFramework简介.md
rename to Spring/Spring5/03 ORM Data JDBC.md
diff --git a/Spring/Spring5/04 事务.md b/Spring/Spring5/04 事务.md
new file mode 100644
index 00000000..e69de29b
diff --git a/Spring/Spring5/05 Webflux.md b/Spring/Spring5/05 Webflux.md
new file mode 100644
index 00000000..e69de29b
diff --git a/Spring/Spring5/image/2022-10-08-11-53-59.png b/Spring/Spring5/image/2022-10-08-11-53-59.png
new file mode 100644
index 00000000..9b45b4e9
Binary files /dev/null and b/Spring/Spring5/image/2022-10-08-11-53-59.png differ
diff --git a/Spring/Spring5/image/2022-10-08-11-54-46.png b/Spring/Spring5/image/2022-10-08-11-54-46.png
new file mode 100644
index 00000000..d7af1558
Binary files /dev/null and b/Spring/Spring5/image/2022-10-08-11-54-46.png differ
diff --git a/Spring/Spring5/image/2022-10-08-12-04-49.png b/Spring/Spring5/image/2022-10-08-12-04-49.png
new file mode 100644
index 00000000..b00618ce
Binary files /dev/null and b/Spring/Spring5/image/2022-10-08-12-04-49.png differ
diff --git a/Spring/Spring5/image/2022-10-08-14-11-22.png b/Spring/Spring5/image/2022-10-08-14-11-22.png
new file mode 100644
index 00000000..ccf0eab6
Binary files /dev/null and b/Spring/Spring5/image/2022-10-08-14-11-22.png differ
diff --git a/Spring/Spring5/image/2022-10-08-14-18-55.png b/Spring/Spring5/image/2022-10-08-14-18-55.png
new file mode 100644
index 00000000..9ede7efe
Binary files /dev/null and b/Spring/Spring5/image/2022-10-08-14-18-55.png differ
diff --git a/Spring/Spring5官方文档.pdf b/Spring/Spring5官方文档.pdf
new file mode 100644
index 00000000..11c1e7e9
Binary files /dev/null and b/Spring/Spring5官方文档.pdf differ
diff --git a/docker/3 常用命令.md b/docker/3 常用命令.md
index 5ff0315c..6a22f409 100644
--- a/docker/3 常用命令.md
+++ b/docker/3 常用命令.md
@@ -247,7 +247,7 @@ exit
### docker rm删除容器
-*
+* 删除容器
```
docker rm container_id 删除指定的容器,不能删除正在运行的容器。
-f 可以删除正在运行的容器
@@ -565,7 +565,7 @@ docker attach containerid
### docker cp从容器内拷贝到主机上
-* docker cp id
+* id
* 进入容器,
* 创建文件
* 拷贝文件
diff --git a/docker/5 容器数据卷.md b/docker/5 容器数据卷.md
index 6f8db7d2..79b60c39 100644
--- a/docker/5 容器数据卷.md
+++ b/docker/5 容器数据卷.md
@@ -115,6 +115,82 @@ docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
## 3 DockerFile构建docker镜像文件
+Dockerfile 用来构建docker镜像的构建文件!就是命令脚本。
+
+* 通过这个脚本可以生成镜像,镜像就是一层一层的。脚本是一个个的命令,每个命令是一层。
+
+```shell
+# 创建一个dockerfile文件,名字尽量为dockerfile
+# 文件中的恩荣,指令大写,参数
+➜ test_volume cat dockerfile1
+FROM centos
+
+VOLUME ["volume01","volume02"]
+
+CMD echo "--end--"
+CMD /bin/bashs
+# 这里的每个命令,都是镜像中的一层。
+```
+
+
+* 运行并查看我们自己创建的镜像。可以看到挂载的卷。这是一个匿名挂载,只包含容器内的文件路径。
+
+
+
+
+
+* 使用docker inspect能够查看卷挂载的路径。
+
+
+
+* 最后测试一下文件是否同步。
+
+* mac下无法访问/var/lib/docker目录。解决方案
+
+```
+# 拉取镜像并运行进入VM,然后就可以找到/var/lib/docker
+docker run -it --rm --privileged --pid=host justincormack/nsenter1
+/ # hostname
+docker-desktop
+/ # uname -a
+Linux docker-desktop 5.10.47-linuxkit #1 SMP Sat Jul 3 21:51:47 UTC 2021 x86_64 Linux
+/ # cd /var/lib/docker/containers/
+/var/lib/docker/containers # ls
+
+469a5c56d4dcfa1f10228e4a10da5fdef2576d046bf83b99066ded54aeb93f90
+a2158f98ccbfe057f8bf4d9c0f3a34b8408ed1bdb22ae72ea90cb781df6af166
+b0bca090076ae5e683469b95ef7279b43ae941fb7ad7732ce233057a175225d8
+d211d5e9bd3e094b37699e9163825c8941e6eff03c036fd3ffc774364db99493
+d4df5c6e11115695fbc4d61cd018ab8a59006a6b9373ba837bf7003df8fd14bb
+
+/var/lib/docker/containers # ls ../volumes/
+
+0bc95ec18e21b6fe455581b48fc8784159e5b3de52037ae0b01dc30a978b3ed7
+45f7d5b3f9a819b8035b088d4bfea306f1a54c3c5257cdc0f733d24691be8dcd
+54c34557ba83af6f142a0916c7eddc36acdb1652eb9b5123ff5c40f6e1e7e4e8
+79d875e4bb162d15417d9a1768b0042c2d08203450dcb904e69f01816927a07a
+b2d98f27082a7864f83aaf667858f3fad39a02819cd4e00e61279a7d30589159
+backingFsBlockDev
+c4a9d80b6636e6dede8c637210dad9abf1b476a63f38848c767802de735a51dc
+db8dcda5d651ec433d83cfeee5dd6d4be198a13d9fe5c103410060addab014ac
+metadata.db
+nginxconfig
+```
-## 4
\ No newline at end of file
+## 4 数据卷容器
+
+### 共享原理
+
+
+
+
+### 数据共享
+
+* 通过vulumes-from 参数实现数据共享
+
+
+
+```shell
+docker run -it --name docker01 --volumes-from a04eb38b1a38 yinkanglong/hello
+```
\ No newline at end of file
diff --git a/docker/image/2022-10-08-21-55-08.png b/docker/image/2022-10-08-21-55-08.png
new file mode 100644
index 00000000..35f9ab4d
Binary files /dev/null and b/docker/image/2022-10-08-21-55-08.png differ
diff --git a/docker/image/2022-10-08-21-57-57.png b/docker/image/2022-10-08-21-57-57.png
new file mode 100644
index 00000000..a6373d51
Binary files /dev/null and b/docker/image/2022-10-08-21-57-57.png differ
diff --git a/docker/image/2022-10-08-22-00-28.png b/docker/image/2022-10-08-22-00-28.png
new file mode 100644
index 00000000..9d465e3c
Binary files /dev/null and b/docker/image/2022-10-08-22-00-28.png differ
diff --git a/docker/image/2022-10-08-22-01-46.png b/docker/image/2022-10-08-22-01-46.png
new file mode 100644
index 00000000..9d465e3c
Binary files /dev/null and b/docker/image/2022-10-08-22-01-46.png differ
diff --git a/docker/image/2022-10-08-22-02-04.png b/docker/image/2022-10-08-22-02-04.png
new file mode 100644
index 00000000..ffb3da92
Binary files /dev/null and b/docker/image/2022-10-08-22-02-04.png differ
diff --git a/docker/image/2022-10-08-22-17-15.png b/docker/image/2022-10-08-22-17-15.png
new file mode 100644
index 00000000..12f74d00
Binary files /dev/null and b/docker/image/2022-10-08-22-17-15.png differ
diff --git a/docker/image/2022-10-08-22-27-25.png b/docker/image/2022-10-08-22-27-25.png
new file mode 100644
index 00000000..417f81b6
Binary files /dev/null and b/docker/image/2022-10-08-22-27-25.png differ
diff --git a/docker/image/2022-10-08-23-06-14.png b/docker/image/2022-10-08-23-06-14.png
new file mode 100644
index 00000000..2fc861dc
Binary files /dev/null and b/docker/image/2022-10-08-23-06-14.png differ
diff --git a/docker/image/2022-10-08-23-06-28.png b/docker/image/2022-10-08-23-06-28.png
new file mode 100644
index 00000000..2fc861dc
Binary files /dev/null and b/docker/image/2022-10-08-23-06-28.png differ