坑:今天写了一个更新操作的表单,但是当取消操作时,表中的原有数据被污染了,很纳闷。
原因:后来知道赋值操作的时候把地址给共同绑定了,这也是一个js的基础问题,对象等赋值数据类型的值和址应用等知识点。
解决策略
1 | editHandel(row){ |
主要利用了 Object.assign({}, xxx) 方法。
Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。不会引用原地址。不会修改到原来的内容。
坑:今天写了一个更新操作的表单,但是当取消操作时,表中的原有数据被污染了,很纳闷。
原因:后来知道赋值操作的时候把地址给共同绑定了,这也是一个js的基础问题,对象等赋值数据类型的值和址应用等知识点。
解决策略
1 | editHandel(row){ |
主要利用了 Object.assign({}, xxx) 方法。
Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。不会引用原地址。不会修改到原来的内容。
1-上传jar到服务器的指定目录
2-在该目录下创建Dockerfile 文件
1 | FROM java:8 |
from java:8
拉取一个jdk为1.8的docker image
maintainer
作者是laiqiaobo
demo-0.0.1-SNAPSHOT.jar
就是你上传的jar包,替换为jar包的名称
demo.jar
是你将该jar包重新命名为什么名称,在容器中运行
expose
该容器暴露的端口是多少,就是jar在容器中以多少端口运行
entrypoint
容器启动之后执行的命令,java -jar demo.jar 即启动jar
3-创建好Dockerfile文件之后,执行命令 构建镜像:
1 | // 注意最后的 `.` 表示 Dockerfile 文件在当前目录下 abc是构建之后镜像名称 |
4-镜像构建成功之后,就可以运行容器了
1 | docker run -d --restart=always --name demo -p 8080:8080 abc |
运行一个jdk的容器,然后挂载其中的目录到宿主机,然后运行之后,就可以将需要运行的jar放在宿主机的挂载目录下,然后每次重新运行docker容器即可。每次发布只需要替换宿主机中的jar包即可。
1-准备 jdk1.8的镜像
2-构建容器, 并映射本地目录
1 | docker run -d --restart=always -v /C/develop/server:/jar -p 8000:8001 --name=cdemo primetoninc/jdk:1.8 java -jar -Duser.timezone=GMT+08 /jar/mybatis.jar |
1 | docker ps // 查看运行中的容器 |
1 | -d: 后台运行容器,并返回容器ID; |
docker run 和 docker start 区别
docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。 相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。
docker start的作用是,重新启动已存在的镜像,可以使用docker ps找到容器的信息。
docker的镜像仓库在国外,下载会很慢,启用阿里云加速。
在/etc/docker
目录下创建daemon.json
文件,添加如下内容
1 | { |
https://almtd3fa.mirror.aliyuncs.com 为阿里云的加速地址。修改后,重启docker:
1 | systemctl daemon-reload |
首先需要了解什么叫MediaType(媒体类型)?
通俗来说,在http协议中,用来表示传输内容的格式就是MediaType,比如text/html,application/json等,其中text代表介质,html代表格式
也就是经过http协议通信的双方,比如客户端和浏览器,要彼此告诉对方自己发送的内容是什么格式,期望获取的结果是什么格式
这两个功能是通过http header中的Content-Type
头部和Accept
头部来体现的
而在springmvc @RequestMapping注解,其提供了根据MediaType进行过滤的功能,仅当Content-Type或Accept头部带有某些MediaType的时候,其才会进行映射
其功能有两个
功能1:当请求头中Accept
的value与produces()配置的属性匹配上,则进行映射,否则返回客户端HTTP 406(Not Acceptable)响应,或415 unsupported mediaType
功能2:默认会把produces中配置的内容写到响应头的Content-Type中去
例1:当不配置produces()属性的时候,会根据Accept请求头来输出响应头的Content-Type
例2:当配置produces()属性的时候,需要Accept与配置的属性兼容,否则会抛出406或415异常
例3:当配置produces()属性的时候,如果未设置Accept请求头,那么默认就是/,会根据produces属性来输出响应头的Content-Type
consumes属性的工作方式类似于produces,不过它会关注请求的ContentType头部信息。当请求头中Content-Type的value与consumes()配置的属性匹配上,则进行映射,否则415 unsupported mediaType