首页 文章 精选 留言 我的

精选列表

搜索[AI技能],共10000篇文章
优秀的个人博客,低调大师

技能篇:docker的简易教程

虚拟机技术每家公司发展到一定规模都必须考虑的,更好的环境隔离,更好的事故排查,更好的服务部署 docker的原理 docker更换阿里源 docker容器的相关命令 Dockerfile文件编写 docker镜像的相关命令 1 docker的原理 Docker 利用Linux 中的核心分离机制,例如Cgroups,以及Linux的核心Namespace(名字空间)来创建独立的容器。一句话概括起来Docker就是利用Namespace做资源隔离,用Cgroup做资源限制,利用Union FS做容器文件系统的轻量级虚拟化技术。Docker容器的本质还是一个直接运行在宿主机上面的特殊进程,看到的文件系统是隔离后的,但是操作系统内核是共享宿主机OS,所以说Docker是轻量级的虚拟化技术 docker 镜像分层 docker 容器,理解为一个或多个运行进程,而这些运行进程将占有相应的内存,相应的CPU计算资源,相应的虚拟网络设备以及相应的文件系统资源。而 docker 镜像,则像一个未运行的软件包,为 docker 容器的运行提供文件资源。 docker 镜像是分层的。启动镜像时,一个新的可写层会加载到镜像的顶层。这一层通常称为"容器层",之下是"镜像层",可能存在多个层。容器层可以读写,容器所有发生文件变更写都发生在这一层。镜像层只允许读取,read-only 在容器层的文件增删操作,命令安装,都会被记录下来。我们可以通过 commit 命令来创建一个新的镜像 2 docker 更换阿里源 # vi /etc/apt/sources.list ~~更新源 # sudo apt-get clean # sudo apt-get update ~~ 安装vim # apt-get install vim 复制代码 ubuntu 18 的阿里镜像文件。使用下面的数据替换原 sources.list 里的数据 deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe 复制代码 3 docker容器的相关命令 run 实例化容器 创建一个新的容器并运行:docker run [options] image [command]。image 可以是镜像ID 也可以是仓库名+Tag名:repository[:tag] options 常用参数 -i 以交互模式运行容器,通常与 -t 同时使用 -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用 -d 后台运行容器,并返回容器ID --name=<name> 为容器指定一个名称 -p 指定端口映射,格式为:主机(宿主)端口:容器端口 --net="bridge" 指定容器的网络连接类型,支持bridge/host/none/container: 四种类型 -e ="v" 设置环境变量 复制代码 示例 [root@lwl]# docker run -it -p 80:80 --name mynginx nginx:latest /bin/bash root@b8573233d675:/# ~~ 如果容器的启动命令是依赖伪终端执行,则需要 -it,如 ubuntu:14.04 镜像 ~~ 没有依赖伪终端执行的启动命令,可去掉-it,因为-d 参数会直接返回容器ID [root@lwl]# docker run -it -d -p 80:80 --name mynginx nginx:latest 315cc38afc2f06abb5a2fbb075ebca16455367b2de685cf0c5ba828ab62dd5a1 [root@lwl]# 复制代码 start、stop、restart 启动与停止 ~~ 启动已被停止的容器 。 container 可以是容器名 也可以是容器ID # docker start container ~~ 停止运行中的容器 # docker stop container ~~ 重启容器 # docker restart container 复制代码 ps 容器查询 // 列出容器 # docker ps [-options] -a :显示所有的容器,包括未运行的。 -f :根据条件过滤显示的内容。 --format :指定返回值的模板文件。 -l :显示最近创建的容器。 -n :列出最近创建的n个容器。 --no-trunc :不截断输出。 -q :静默模式,只显示容器编号。 -s :显示总的文件大小 // 相当于在 container 容器里使用 top命令 # docker top container 复制代码 rm 删除容器 # docker rm container 复制代码 cp 文件传输 本机和 docker 容器之前的文件传输 ~~ 复制本地目录 srcPath 到 容器 container 的目录 destPath # docker cp srcPath container:destPath ~~ 复制容器 container 的目录 srcPath 到本地目录 destPath # docker cp container:destPath srcPath 复制代码 exec 在运行的容器中执行命令 docker exec [options] container command -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 ~~ 在容器 mynginx 中以交互模式执行容器内 /root/run.sh 脚本 # docker exec -it mynginx /bin/sh /root/run.sh ~~ 在容器 mynginx 中开启一个交互模式的终端 # docker exec -it mynginx /bin/bash 复制代码 logs 获取容器的日志 docker logs [options] container -f 跟踪日志输出 --since 显示某个开始时间的所有日志 -t 显示时间戳 --tail 仅列出最新N条容器日志 [root@lwl]# docker logs -f mynginx 192.168.239.1 - - [10/Jul/2021:16:53:33 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" 2021/07/10 16:53:33 [error] 5#5: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.239.1, server: localhost, request: "GET /favicon.ico HTT .... 复制代码 4 Dockerfile文件编写 # docker build -f /path/to/a/Dockerfile 复制代码 // 1 FROM:指定基础镜像,必须为第一个命令,格式: FROM <image> FROM <image>:<tag> // 2 MAINTAINER: 维护者信息 格式: MAINTAINER <name> // 3 ENV:设置环境变量 格式 // 4 ARG:用于指定传递给构建运行时的变量 格式: ARG <name>[=<default value>] // 5 WORKDIR:工作目录,类似于cd命令 格式: WORKDIR /path/to/workdir ENV <key>=<value // 6 ADD:将本地文件添加到容器中,可以访问网络资源,类似wget ADD <src>... <dest> // 7 COPY:功能类似ADD,但是是不会自动解压文件 // 8 RUN:构建镜像时执行的命令 格式 RUN <command> // 9 CMD:构建容器后调用,也就是在容器启动时才进行调用 CMD command param1 param2 (执行shell内部命令) // 10 ENTRYPOINT:配置容器,使其可执行化 ENTRYPOINT command param1 param2 (shell内部命令) 复制代码 Dockerfile 示例 # 基础镜像 FROM centos # 维护者信息 MAINTAINER tianfeiyu #ENV 设置环境变量 ENV PATH /usr/local/nginx/sbin:$PATH #ADD 文件放在当前目录下,拷过去会自动解压 ADD nginx-1.8.0.tar.gz /usr/local/ ADD epel-release-latest-7.noarch.rpm /usr/local/ # RUN 执行以下命令 RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpm RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all RUN useradd -s /sbin/nologin -M www # WORKDIR 相当于cd WORKDIR /usr/local/nginx-1.8.0 RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install RUN echo "daemon off;" >> /etc/nginx.conf # CMD 运行以下命令 CMD ["nginx"] 复制代码 5 docker 镜像的相关命令 镜像查看列举:docker images 镜像搜索:docker search <imageName>;imageName 是 repository[:tag] 的模糊词 拉取:docker pull repository[:tag] 删除单个镜像:docker rmi 镜像ID 或者docker rmi repository[:tag] 给镜像打别名(标签):docker tag oldRepository[/:oleTag] newRepository][/:newTag] # docker tag ubuntu:15.10 lwl/ubuntu:v3 复制代码 构建镜像 ~~ 根据 Dockerfile 构建镜像 # docker build -t repository[:tag] dir # docker build -t lwl/ubuntu:v1 . options 参数 --build-arg=[] 设置镜像创建时的变量 -t 镜像的名字及标签,通常 name:tag 或者 name 格式 -f 指定要使用的Dockerfile路径 复制代码 ~~ 根据正在运行的 container 容器 构建镜像 # docker commit [options] container repository[:tag] options 参数 -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像; -m :提交时的说明文字; -p :在commit时,将容器暂停 复制代码 推送:docker push repository[:tag] 欢迎指正文中错误 创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~ 如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star: http://github.crmeb.net/u/defu 不胜感激 ! 来自 “开源独尊 ” ,链接: https://ym.baisou.ltd/post/798.html

优秀的个人博客,低调大师

python实用技能之下载视频

python下载夏目友人帐 一般情况下我们使用爬虫更多的应该是爬数据或者图片吧,今天在这里和大家分享一下关于使用爬虫技术来进行视频下载的方法,不仅可以方便的下载一些体积小的视频,针对大容量的视频下载同样试用。 先上个 requests模块的iter_content方法 这里我们使用的是python的requests模块作为例子,需要获取文本的时候我们会使用response.text获取文本信息,使用response.content获取字节流,比如下载图片保存到一个文件,而对于大个的文件我们就要采取分块读取的方式了, requests.get方法的stream 第一步,我们需要设置requests.get的stream参数为True。默认情况下是stream的值为false,它会立即开始下载文件并存放到内存当中,倘若文件过大就会导致内存不足的情

优秀的个人博客,低调大师

测试人必会的 Mock Server 技能

这是无量测试之道的第193篇原创 Mock 是什么? Mock Server 是什么? Mock Server 的常用场景 Mock Server 搭建 1.借助第三方工具直接提供 Mock Server 2.自主编码实现 Mock Server(Flask) 总结 Mock 是什么? Mock 是模拟的意思。在测试中,通常表述为:对测试过程中不容易构造或者不容易获取的对象,用一个虚拟的对象来进行模拟的一个过程。 那么哪些对象不容易构造?哪些对象不容易获取呢? 拿微服务举例,在一个调用链条上,微服务 A 依赖 B 服务才能提供服务,而微服务 B 依赖 C 服务, 微服务 C 依赖 D 服务.....在这样的情况下,把每个依赖的服务都构造完毕再开始测试,就变得不太现实。这种情况我们称之为不容易构造。 又比如,假设我们的服务依赖银行的接口提供资金的查询。在测试中,银行不可能无条件或者随意提供接口给我们调用。那么,在我们开发完毕但是要依赖对方才能开始测试时,我们称这种情况为不容易获取。 无论是哪种情况,使用 Mock 的前提条件是:我们仅关注测试对象自身内部逻辑是否正确,而不关心其依赖对象逻辑的正确性。 Mock Server 是什么? 了解了什么是 Mock,理解 Mock Server 就比较容易了。简而言之,能够提供 Mock 功能的服务就叫作 Mock Server。Mock Server 通过模仿真实的服务器,提供对来自客户端请求的真实响应。 那么 Mock Serve 如何模仿真实的服务器呢? 一般情况下,搭建 Mock Server 前,需要了解将要 Mock 的服务,都能提供哪些功能?对外提供功能时,又以哪种格式提供服务?例如,以接口方式提供服务,接口的种类、接口的定义,以及接口输出的参数等信息。 了解了这些,Mock Server 就可以根据请求的不同,直接静态地返回符合业务规范的接口,也可以在 Mock Server 内部经过简单计算,动态返回符合业务规范的接口。 在实际工作中,Mock Server 通常以 Mock API Server 的形式存在,也就是我们一般以接口的形式对外提供服务,Mock Server 搭建在本地或者远程均可以对外提供服务。 Mock Server 的常用场景 最常见的 Mock Server 的使用场景如下: 前后端联调使用,通过事先约定接口规范,使前端可以不依赖后端服务独立开展工作,这也是开发最常用的功能。 使用 Mock Server 屏蔽无关的真实服务,从而专注于要测试的服务本身。仅仅测试需要测试的服务,其他不在我负责范围的服务使用 Mock。 供测试工程师使用,在测试环境避免调用第三方收费服务。比如,企查查等服务是收费的,在测试环境就可以不调用,以节省费用。 破除第三方依赖。比如,本公司业务流程的某一个步骤需要获取第三方服务的正确返回才能继续进行,那么在测试中就可以用 Mock Server,直接模拟外部 API 的响应来断言系统的正确行为。 以上四条基本可以概括 Mock Server 绝大多数的使用情况。 可以看到,前两条主要是开发之间在使用,那么这个 Mock Server 通常是开发之间协调提供;或者是前端开发根据 API 接口规范,直接写 Hard Code 的响应供自己调用; 或者是后端直接提供一个返回值给前端调用,基于成本和时间考虑,这个返回值通常也是 Hard Code 的。 而后两条就都是跟测试密切相关了,也是今天的分享需要重点关注的。 Mock Server 搭建 Mock Server 的搭建有两种方式,分别是借助第三方工具直接提供 Mock Server,以及自主编码实现 Mock Server。下面将会分别介绍下这两种方式。 1.借助第三方工具直接提供 Mock Server 可以直接提供 Mock Server 功能的第三方工具很多,Postman 是测试人常用的接口测试工具 ,这里我就选择使用Postman的 Mock 功能。Postman 提供了三种方式创建 Mock Server,我们直接选择第一种,并以 Postman 官方给的例子来看下如何不写代码创建 Mock Server。 (1)打开 Postman, 点击"+New" button。 (2)在弹出来的"Create New"选项中点击 Mock Server 。 (3)Postman 支持"Create a new API"或者"Use collection from this workspace"两种方式来创建 Mock Server。 简单起见,我们选择“Create a new API”。在下图中我们选择请求方法,可以是 GET、POST、UPDATE,也可以是 DELETE,也就是我们常说的增删查改。然后输入请求路径,需要返回的 HTTP 响应码,以及响应的 Body,可以模拟多个 API 接口。全部设置好后点击下一步。 (4)然后,你将看到下图 4 个需要配置的地方。 输入 Mock Server 的名称。 选择一个环境(可选),通常我们的测试环境有好几个,你可以配置使用不同的测试环境。 是否要将 Mock Server 设为私有。 是否将 Mock Server 的 URL 保存为环境变量。 等你都配置好后,单击下一步继续。 (5)当你看到如下界面,说明配置成功。此时你的简易版 Mock Server 就生成了。记录下生成的 URL,然后在你的测试中调用相应的 URL 地址即可。 在上述例子中,我在第(3)步设置了 echo 这个接口,它是个 GET 请求,你就可以直接在浏览器输入 http://mock-server-url/echo 这样的方式来访问,需要替换这里 mock-server-url 为图中的地址。 如果是 POST 请求,你也可以自定义参数,Request Body 等等。 2.自主编码实现 Mock Server(Flask) 使用第三方工具创建 Mock Server 比较简单,但是由于严重依赖于第三方工具,在实际工作中,一般用作开发完成后的第一轮手工测试。而业务上线后,在测试框架中使用时,我们还是倾向于根据业务规则自主编码实现 Mock Server。 当前,Github 上有很多成熟的 Mock Server 可供我们使用,根据编程语言的不同,最常见的有如下几个: Java - Mock Server(https://github.com/mock-server) Python - responses(https://github.com/getsentry/responses) JavaScript - easy Mock(https://github.com/easy-mock/easy-mock) 这些 Mock Server 的搭建非常简单,按照步骤操作即可。 下面讲下 Mock Server 的另外一个普遍搭建过程,即使用 Flask 框架来充当 Mock Server。 Flask 是一个微 Web 框架,使用 Python 语言编写。使用它可以快速完成功能丰富的中小型网站或 Web 服务的实现。 (1) 首先你要保证系统已经安装好 Flask,并确保你的机器有 Python 运行环境。 pip install flask (2) 创建一个 Python 文件,例如:test_mock_with_flask.py,代码如下: from flask import Flask, request, json, abortapp = Flask(__name__)@app.route('/', methods=['GET'])def hello(): return 'hello world'@app.route('/mock', methods=['POST','GET'])def mock(): """ 模拟调用第三方服务,查询账户余额。 :return: """ if request.method == 'GET': abort(404) else: try: name = request.form['name'] print(name) if name == 'Candy': data = {"status": 200, "message": "success", "text": {"available_balance": 200000}} else: data = {"status": 400, "message": "fail", "text": {}} except: data = {"status": 500, "message": "system error", "text": {}} return json.dumps(data)if __name__ == "__main__": app.run() 这段代码实现了这一功能:访问 http://127.0.0.1:5000,直接返回“hello world”,如下图所示: 直接使用 GET 方式访问http://127.0.0.1:5000/mock,会出现 404 错误,如下图所示。 如果使用 POST 方式,假设提交的数据中包括“name=Candy”这个键值对,则返回如下结果: {"status": 200, "message": "success", "text": {"available_balance": 200000}} 如果你提交的数据中不包括“name=Candy”, 则返回如下结果: {"status": 400, "message": "fail", "text": {}} 如果代码在运行过程中发生了错误,则返回如下结果: {"status": 500, "message": "system error", "text": {}} 这其实就是一个最简单的Mock Server。 (3) 启动这个 Flask 服务。 打开命令行工具,在你的 Terimal 里运行以下命令行,以启动这个 Mock Server。 python test_mock_with_flask.py (4) 测试 Mock Server。首先安装 curl。curl 是一个利用 URL 语法在命令行方式下工作的文件传输工具。由于它支持 HTTP 协议及其请求方法,故也可以用来发送 HTTP 请求。 # curl的安装和配置,根据操作系统的不同,步骤也不同。# 如果你使用pip, 可以直接以如下方式安装。pip install curl# 如果你发现在你的操作系统下,上述安装方式不起作用,你可以直接在搜索引擎中搜索相关的安装方式。 curl 常用的语法如下: # 直接发送GET请求$ curl https://www.helloworld.com# 添加HTTP请求头访问$ curl -H "Content-type: application/json" https://www.helloworld.com# 指定HTTP请求# -X 表示请求方法# -d 表示发送 POST 请求的数据体$ curl -X POST -d 'wlTesting=Good' https://www.helloworld.com 最后,我们通过 curl 发送 HTTP 请求,来验证下搭建的 Mock Server 是否功能正确: # 通过curl直接调用,返回500curl -H "Content-type: application/json" -X POST -d '{"name":"Candy"}' http://127.0.0.1:5000/mock# 返回400curl -d'name=Candy01' -X POST http://127.0.0.1:5000/mock# 返回200curl -d'name=Candy' -X POST http://127.0.0.1:5000/mock 可以看到,根据请求输入的参数及请求方式的不同,Mock Server 返回了期望的结果。 到这里,两种方式的 Mock Server 已经搭建完毕。之后在你的测试代码里,涉及调用第三方应用的情况,你就可以直接转而调用 Mock Server 来继续你的测试了。 当然,你的 Mock Server 实现要考虑第三方应用的业务逻辑和输出结果的格式、参数以及数据等方面。 总结 今天分享的内容是从 Mock 的定义出发,讲解了 Mock Server 的含义、常用场景,以及 Mock Server 在我们开发测试中的重要性,接着又采用两种方式实现了Mock Server,分别是: 使用 API 接口工具 Postman。它的优点是无须编程,缺点是生成是 Server URL 地址无法更改。 使用 Python 的 Flask 框架编程。它的优点是可以把 Mock Server 集成至自己的测试框架中,缺点是需要一定的编程能力。 Mock Server 能够大大提升我们的测试效率,希望通过这些内容,让你能掌握 Mock Server 并运用于测试工作实践中。 end 如果今天的分享对你有帮助的话,请毫不犹豫:关注、分享、点赞、在看、收藏呀~你的鼓励将会是我创作的最大动力。 ◆Pytest 测试框架——数据驱动 ◆自动化测试必会—数据驱动DDT ◆AirTest-selenium基于Web实现UI自动化测试 ◆Python API自动化测试实操(高清版配图) ◆Pytest 测试框架——数据驱动 点个赞,点个在看再走啦~~~ 本文分享自微信公众号 - 无量测试之道(gh_858a1aa25a6d)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

容器管理必备:掌握工具和技能

当制订容器管理策略时,选择正确的工具只是万里长征迈出了第一步。 那些在云应用开发和应序迁移过程中应用容器技术(例如Docker)的用户很快就会认识到使用容器管理工具的必要性。这些工具能够帮助用户管理容器的运行和规模,并监控容器的性能和安全性。 管理容器可能需要用户付出大量的工作,首先需要考虑的一个问题就是选择一个合适的管理工具。对于基于容器技术的应用程序来说,主要有两种类型的管理工具:容器集群管理器和容器运行管理器。 容器集群管理器 容器集群管理器,主要指Docker Swarm、CoreOS Tectonic 和谷歌Kubernetes,它整合了一个由多个服务器或节点组成的共享计算环境,其中的集成资源可用于支持工作负载和程序在集群内正常运行。用户可以在集群内使用程序来创建一个任务,然后使用这些任务以满足特定业务或IT的需求。这也涉及使用这些任务来创建一个工作。 如果需要退出这个功能,那么用户就应使用集群管理框架来管理一个或多个集群,而这个框架通常包括了一个资源管理器,它可用于跟踪诸如内存、CPU以及存储等资源。当任务运行需要资源时,必须通过资源管理器来获取所需的资源。用户还可以访问资源,这意味着他们可以管理集群的性能、响应时间以及其他。这就使得集群可拥有虚拟或物理上的可扩展性。 容器集群管理器的其他组件还包括一个任务管理器,它主要负责任务执行和状态的管理。集群管理器中还有一个调度管理组件,它可对组成工作的各个任务之间的依赖关系进行管理,并为各个节点分配任务。这个调度管理组件是集群管理器的一个核心组件;如果没有它,管理器将无法实现工作和任务的启动或停止。 容器运行管理器 对于管理容器的IT专业人士来说,他们可使用容器运行管理器这类工具来执行某些特定的任务,例如启动和停止基于容器的应用程序的运行、监控和管理资源、日志记录和根据预定义策略来执行某些自动化操作。 在去年十月被Docker收购的Tutum就是一个具有内置日志记录功能的容器管理工具,它能够允许用户访问他们容器的输出日志,并收集日志以供后期方便查看。Tutum还提供了可供用户检查容器状态的监控功能、一个可确保使用Tutum和Docker最新版功能的更新程序、以及一个API和一个控制面板。 容器管理的最佳实践 除了选择正确的工具以外,这里还有一些容器管理方面的通用技巧: 了解你的核心容器使用模式。有一些基于容器的应用程序是非常复杂的,它们需要大量的监控和管理。而另一些应用程序则相对更为简单,这些应用程序可能不需要扩展资源或者被严密监控。运行和维护容器管理工具的代价可能是较为昂贵的,所以应当只在你确定真的需要它们时才具体实施;你所拥有容器的数量和类型将具体决定你的需求。 不要过于关注工具。很多使用容器技术的组织过分关注可用工具,而不关心他们真正需要的功能。事实上,随着时间的推移,你所使用的容器管理工具也会不断更新变化。 在实践中不断学习。请始终关注你的容器、管理工具以及程序。持续不断地向自我提出更高要求,如何才能更好地或者更高效地使用这项技术。如有需要,及时更改或更新流程和工具。 本文转自d1net(转载)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册