自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

暗余的博客

分享Java,Linux,前端,以及后期大数据相关的知识,实战和学习笔记,细致入微,从0带你温故知新!

  • 博客(173)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式从入门到精通,最全面全方位讲解(精选)

设计模式精讲一. 课程导学及UML急速入门1.1 本章导航本章将通过以下六个方面来进行讲解UML:定义、特点、分类、类图、时序图、记忆技巧URL定义:统一建模语言(英语:Unified Modeling Language,缩写UML)非专利的第三代建模和规约语言URL的特点:UML是一种开放的方法用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已

2021-11-05 22:05:44 1461 2

原创 Java并发编程与高并发解决方案(精选)

Java并发编程与高并发解决方案一、课程准备1.1 课程导学本课程主要是围绕并发编程和高并发解决方案两个核心来进行讲解;希望这门课程能够带领大家攻克并发编程与高并发的难题;课程特点:大量的图示及代码演示;全面覆盖并发知识点,建立完整的知识体系,主要有:线程安全、线程封闭、线程调度、同步容器、并发容器、AQS、J.U.C等等;高并发的解决方案与思路主要有:扩容、缓存、队列、拆分、服务降级与熔断、数据库切库、分库分表等等,通过以上帮助你构建完整的并发与高并发知识体系。贴近面试,提

2021-01-28 23:12:11 1381

原创 SpringCloud Alibaba 从入门到精通(精选)

SpringCloud Alibaba 从入门到精通一. 课程介绍1.1 课程导学什么是SpringCloudAlibaba?阿里巴巴结合自身微服务实践,开源的微服务全家桶在Spring Cloud项目中孵化,很可能成为Spring Cloud第二代标准的实现在业界广泛使用,已有很多成功案例Spring Cloud Alibaba真实应用场景大型复杂的系统,例如大型电商系统高并发系统,例如大型门户,秒杀系统需求不明确,且变更很快的系统,例如初创公司业务系统Sprin

2020-07-08 00:07:00 26180 40

原创 博主精选文章系列(0基础到进阶全部知识点)

此文章会一直更新(纯手打),作为我学习的动力,同学们也可以参考,收藏,学习!想见证它补全的那一天,请不忘了点个关注~ 笔芯~~文章目录一.必备基础知识1.1 Java 基础1.1.1 基础1.1.2 容器1.1.3 并发1.1.4 JVM1.1.5 其他1.2 各种数据库1.2.1 SQL数据库1.2.1.1 MySQL1.2.1.2 TiDB1.2.2 NoSQL数据库1.2.2.1 Re...

2020-04-14 11:13:00 486

原创 HTTP缓存之使用Etag控制静态资源缓存

当我们打开浏览器访问页面时,客户端并不总是请求服务器。当HTTP 请求状态码返回304时,就有可能使用到了HTTP缓存。通俗来说,当我们访问资源时,并不总是会请求服务器。部分可重用的资源,如果没有发生过修改,那么我们就可以直接使用而不必再次请求。HTTP 缓存会存储与请求关联的响应,并将存储的响应复用于后续请求。

2023-10-20 20:53:30 54

原创 如何轻松实现跨境电商,华为云解决方案告诉你

各位观众老爷们好,接下来我将介绍我们的主人公。这个男孩看好了,他叫小帅,是一名公司技术主管,并且单身暗恋小美。另外一个女孩,她叫小美,是该公司的高级程序员,同时对小帅也颇有好感。作为跨境电商员工的小美,今天又是努力工作(mo yu)的一天。同时作为一名专业的`长方体移动工程师`,小美正在执行日常的`复制粘贴`操作。结果突然大事不妙,屏幕上出现了一个 404 异常。正当小美抑郁的时候,技术主管小帅急切的跑了过来。“小美,我有话对你说!”,小帅表情严肃。小美心情瞬间开心了。难不成他是要对我表白吗。

2023-03-23 23:56:48 5503 1

原创 单元测试系统化讲解之PowerMock

本次讲解的PowerMock是单元测试的进阶技术框架;知道什么是单元测试明白Junit/Mockito相关的一些使用或知识想要了解单元测试相关的一些技术PowerMock是什么?PowerMock是一个扩展了其它如EasyMock等mock框架的、功能更加强大的框架。PowerMock使用一个自定义类加载器和字节码操作来模拟静态方法、构造方法、final类和方法、私有方法、去除静态初始化器等等。通过使用自定义的类加载器,简化采用的IDE或持续集成服务器不需要做任何改变。......

2022-08-11 00:48:42 662

原创 单元测试系统化讲解之Mockito

Mock是什么?mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。使用Mock能够为我们带来哪些好处呢?团队可以并行工作有了Mock,前后端人员只需要定义好接口文档就可以开始并行工作,互不影响,只在最后的联调阶段往来密切;后端与后端之间如果有接口耦合,也同样能被Mock解决;测试过程中如果遇到依赖接口没有准备好,同样可以借助Mock;解决依赖问题概念Mock。......

2022-07-25 22:37:39 550

原创 C#从入门到精通之第二篇: C# 基础语法

C#是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种对象组成。相同种类的对象通常具有相同的类型。如果是初学者看不懂没有关系,我们大概记住这些名词,后续过程中会进行讲解。日常中我们会经常写注释,一方面可以使用它去注销一些后续。不用的代码,或者使用它去注释。/*注释内容*/...

2022-07-16 00:09:50 687

原创 C#从入门到精通之第一篇: C#概述与入门

C#语言及特点C#是微软公司发布的一种面向对象的、运行于.NETFramework和.NetCore(完全开源,跨平台能够在Windows/Linux上运行)之上的高级程序设计语言。C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性;C#是面向对象的编程语言;.Net是什么?.Net和C#究竟是什么关系?.Net是一个平台,而C#则是在这个平台里面的一门语言;......

2022-07-16 00:01:12 3448

原创 2022年,你的数据库还没有上云吗?

随着全球网民的持续增长,数据库的压力已越来越成为一个企业的瓶颈。在业务和用户量的的持续增长下,如何保证数据库的安全性、稳定性、可用性? 国内的市场竞争激烈,往往提出一个idea,就会有无数人跟进。如何在极短时间内提供一个具备完整功能的数据库,同时能够降低企业经营成本,提高生产效率? 传统数据库面临着:新建成本高昂、操作配置复杂、没有可视界面、对技术人员要求极高,如何解决这些痛点? 随着“云时代”的到来,这些问题有望解决。 云数据库简称RDS,它的优化和部署都在云端完成,具有简

2022-06-22 22:34:15 19478 2

原创 记SQL Server实战修复死锁总结

使用WITH(NOLOCK) 避免锁竞争。从WITH(NOLOCK) 来讲,它的目的是允许脏读,不锁定表,以达到快速查询的目的;SELECT查询时未使用WITH(NOLOCK)会产生共享锁,且在查询后立即使用了DELETE 删除此数据,则会变成独占锁;如果同一个seller在短时间内重复操作两次可能会引起两个事务竞争,产生死锁。在允许脏读的业务中,尤其是对同一条数据存在Select 和 UPDATE/DELETE/INSERT 的时候,就容易导致死锁问题;由于SQL SERVER 的强大功能,在查询数据的还

2022-06-18 09:20:46 540

原创 第一篇 Java核心技术细讲之ArrayList

Java核心技术细讲之ArrayList开篇导言你好,我是暗余。本专栏为我的原创专栏,谢谢您的观看;今天我们来讲一下ArrayList。日常工作中,它是我们使用最为频繁的一个集合类;相信每一位Java同学都有接触过它。如何使用好ArrayList,如何深入浅出的理解ArrayList,是每一位同学的必修课;学好ArrayList有什么作用呢?集合在整个流程中都有它的存在。从数据库批量查询需要集合接收;作为我们业务逻辑承载的容器,它能够满足各种各样的业务逻辑和功能(数据的筛选、分页、排序、合并、

2022-05-27 22:03:32 738 1

原创 算法与数据结构从入门到精通

算法与数据结构从入门到精通一、课程概述1.1 课程介绍数据结构和算法这门课程,无论在哪个学校的计算机专业,都是一门必修课。这门课程非常重要,是编程的基础通往高级开发人员的必经之路,因为程序设计= 数据结构+算法学好数据结构与算法,能够更深层次的理解课程,提升编写代码的能力,让程序的代码更加优雅,性能更高;1.2 数据结构与算法概述-数据结构什么是数据结构?数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科;数据结构就是把数据元素按

2022-05-10 22:46:05 587 2

原创 发现了一款宝藏工具:Apipost,你用过它吗?

在日常的开发过程中,大家使用过最多的接口测试工具是什么呢?相信不少同学,脑海中浮现的第一个答案就是postman。在博主日常使用过程中,发现了一款比它更好用的工具,并且,它居然还是国产软件!今天国产之光它来了,接下来,我将闪耀的介绍这位后起之秀:ApiPost!前言:Apipost 是什么呢?简单来说: Apipost = postman + Swagger +Mock,集大成者!从功能上来讲,它集众多功能于一身,能够化繁为简,还是一款国产软件,网络速度更快,中文更贴心!从费用上来讲,它

2022-05-05 21:44:20 5927 3

原创 记录一次sql 性能优化的分析过程

1. 业务场景分析目前有这样一个业务,我们需要查询一个物流列表,在这个物流列表中,会关联查询订单、历史物流记录、包裹等各种表信息;在数据量上,每张表的数据量在五千万~2亿条之间数据库:SQL Server查询耗时如图所示:可以看出来,最慢甚至要39s !!!具体sql语句大致如下: SELECT s.订单ID AS 订单ID, s.主键ID AS 包裹ID, s.发货日期, s.发货状态, s.运单编号ID, s.物流公司, s.服务类别, t.商品编号 商品编号,

2022-01-04 10:36:38 1151

原创 常用工具类(轮子)

一. 文件相关1.1 ExcelFastExcelEasyExcel流式导出:调用类:import com.alibaba.excel.annotation.ExcelProperty;import com.xxx.ExcelUtils;import lombok.Data;import lombok.experimental.Accessors;import org.springframework.beans.factory.annotation.Autowired;

2021-09-24 16:03:09 1142

原创 Redis从入门到集群分布式实践

Redis 分布式实践一. Redis 初识1.1 Redis 导学Redis有哪些特点?高性能的key-value服务器多种数据结构丰富的功能高可用分布式支持博客目录:Redis初识: 特性介绍、使用场景、安装部署APi的理解和使用:实战使用、单线程、批量处理Redis客户端的使用:Java、Python等客户端的介绍瑞士军刀Redis:高级功能的使用,比如发布订阅、位图等;Redis持久化的取舍和选择Redis复制的原理和优化: 5/6两节主要是1.2

2021-09-16 23:52:59 683

原创 代码设计与整洁总结

代码设计与整洁总结1. 使用Spring Validation 校验参数改造前:Controller校验参数时,会写非常多的校验逻辑,且会与正常的业务代码糅合在一起,造成阅读代码的不适感。简单实例如下: import lombok.Data; import lombok.ToString; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.PostM

2021-08-11 13:09:03 511

原创 SQL Server 0基础入门&操作手册,超详细全面~

SQL Server 0基础入门&操作手册一. SQL 简介1.1 主要特性高性能设计,可充分利用WindowsNT的优势系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置强壮的事务处理功能,采用各种方法保证数据的完整性支持对称多处理结构、存储过程、ODBC,并具有自主的SQL语言。SQL SERVER以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。1.2

2021-07-01 23:30:31 18585 9

原创 玩转Git、GitHub、GitLab(更新中ing)

玩转Git、GitHub、GitLab一. Git基础1.1 课程综述版本管理的演变:VCS出现前:用目录拷贝区别不同版本公共文件容易被覆盖成员沟通成本很高,代码集成效率低下集中式VCS:有集中的版本管理服务器具备文件版本管理和分支管理能力集成效率有明显地提高客户端必须时刻和服务器相连如图所示:分布式VCS:服务端和客户端都有完整的版本库脱离服务器,客户端照样可以管理版本查看历史和版本比较等多数操作,都不需要访问服务器,比集中式VCS更能提高版本管理效率

2021-06-21 22:36:55 379

原创 教你快速入门ElasticSearch,超详细简单~

教你快速入门ElasticSearch,超详细简单~一. 初探ElasticSearch1.1 什么是ElasticSearch?ElasticSearch,简称为ES,它是一个开源的高扩展的分布式全文检索硬气,它可以近乎实时的存储、检索数据;它的扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能。它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。1.2 它与Solr

2021-06-17 21:46:50 15138 19

原创 Java性能监控与调优(JVM、GC...) 更新ing

Java性能监控与调优一、内容介绍1.1 内容介绍二、基于JDK命令行工具的监控主要讲解JDK的命令行监控工具的使用,包括jps、jinfo、jstat、jmap、jstack,并结合MAT实战如何定位内存溢出,实战如何定位死循环和死锁。2.1 JVM的参数类型2.2 查看JVM运行时参数2.3 jstat查看JVM统计信息2.4 演示内存溢出2.5 导出内存映像文件2.6 MAT分析内存溢出2.7 jstack与线程的状态2.8 jstack实战死循环与死锁2.9 常见问题

2021-05-22 23:53:12 557

原创 Devops系统化,从零开始学习容器技术(更新中)

Devops系统化,从零开始学习Docker、K8s一、容器技术和Docker简介1.1 Docker导学1.2 容器技术概述1.3 Docker魅力初体验二、Docker环境的各种搭建方法2.1 Docker安装介绍2.2 在Mac系统上安装Docker2.3 在Windows系统上安装Docker2.4 agrant&irtualBox for Mac2.5 agrant&irtualBox for Windows2.6 在Centos上安装Docker2.7 D

2021-05-16 23:24:52 1128

原创 Linux环境下(Centos7) 下安装Docker详细教程

Linux环境下(Centos7) 下安装Docker详细教程1.1 安装前的准备xshellCentos7 服务器能够连接服务器1.2 开始安装查看Centos版本:lsb_release -a如果出现 “未找到命令” 提示,则输入此命令安装yum install -y redhat-lsb安装后再次执行步骤1按照docker要求系统为64位,系统内核版本为3.10以上,使用此命令查询:uname -r查看是否已安装docker列表:yum lis

2021-03-16 09:58:24 1149

原创 使用Docker搭建图片服务器并连接使用

使用Docker搭建图片服务器并连接使用一. 安装Docker此处略,后面出安装Docker详细教程。现在可自行百度安装二. 安装Fastdfs文件服务器+Nginx2.1 FastdfsFastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。FastDFS 架构包括 Tracker ser

2021-01-06 20:16:29 1159 4

原创 程序员要读的书都在这儿啦,收藏起来慢慢看。

所有书籍排名和分类不分先后,同学们可根据自身量身选择。一. 推荐数据分类1.1 编程风格:《阿里巴巴开发手册》《Effective Java》《重构-改善代码既有设计》《代码整洁之道》:细节之处的效率,完美和简单。《设计模式》:这本书是面向对象设计的经典书籍。《重构》:代码坏味道和相应代码的最佳实践。《编程珠玑》1.2 架构:《淘宝技术这十年》《架构整洁之道》《架构师修炼之道》《现代操作系统》1.3 领域驱动:《领域驱动设计精粹》1.4 应用技术:《El.

2020-12-28 14:44:07 383 2

原创 容器化进阶Kubernetes快速入门

容器化进阶k8s快速入门一. Kubernetes概述1.1 Kubernetes介绍1.1.1 Kubernetes是什么及作用?1.1.2 Kubernetes快速入门1.2 Kubernetes基本架构与常用术语二. Kubernetes集群2.1 环境准备与规划2.2 Master安装2.3 Node 1安装2.4 Node 2安装2.5 健康检查与示例测试一. Kubernetes概述1.1 Kubernetes介绍1.1.1 Kubernetes是什么及作用?Kubernets(K8

2020-11-04 23:43:08 675

原创 搜索引擎Solr详解:从0开始搭建、维护及各类使用

搜索引擎Solr详解:从0开始搭建、维护及各类使用一. Solr简介及入门1.1 什么是搜索引擎1.2 什么是solr1.3 Solr与其他产品对比1.4 Solr的优缺点,使用场景1.5 Solr的常用术语1.6 其他知识点二. Solr搭建及维护2.1 Windows端搭建Solr2.2 Linux端搭建Solr教程2.3 常用术语详解三. Solr后端引入及基本使用3.1 引入SpringBoot项目教程3.2 基本查询方法:增、删、查、改3.3 注意事项四. Solr高级语法4.1 分词4.2 高亮

2020-11-03 12:03:43 919

原创 数据结构与算法导图

数据结构与算法导图简单来说,数据结构是存储数据的方式,而算法是获取数据的方式。通过获取图书的方法(算法),拿到指定位置的图书(数据结构)。下面是思维导图:同学们可以参照此思维导图系统的学习数据结构与算法,顺便能够方便地理清关系。...

2020-10-27 11:13:29 448

原创 Groovy语言与Gradle3.0自动化项目构建技术

Gradle3.0自动化项目构建技术与实战文章目录Gradle3.0自动化项目构建技术与实战一. 课程介绍1.1 课前必读1.2 课程导学二. Gradle快速入门2.1 本章概述2.2 什么是领域特定语言DSL?2.3 groovy初探三. 开发环境搭建3.1 本章概述3.2 linux下环境搭建3.3 windows下环境搭建3.4 groovy工程创建3.5 本章小结四. Gradle核心语法讲解及实战4.1 本章概述4.2 基础语法讲解4.3 String讲解4.4 字符串方法讲解4.5 逻辑控制

2020-10-09 23:09:26 635

原创 Linux环境下(Centos7) 下安装Kafka/Zookeeper 详细教程

Linux环境下(Centos7) 下安装Kafka详细教程本博文讲解的为单机版安装教程一. 安装Zookeeper1.1 选择镜像:清华镜像 阿里镜像可以在上面两个地方选一个合适的镜像1.2 安装步骤创建文件夹:mkdir -p /usr/local/services/zookeeper进入文件夹:cd /usr/local/services/zookeeper下载镜像至新建的文件夹:wget --no-check-certificate https:/

2020-09-11 18:13:53 1017

原创 使用@Async 注解实现简单异步调用

待更

2020-09-11 17:11:58 3206 3

原创 Grafana监控系统之Prometheus+Grafana监控系统搭建

Grafana监控系统之Prometheus+Grafana监控系统搭建本文章内容较长,可通过右上角点击目录快速定位想看的内容 => =>一. 概述1.1 Grafana介绍Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;数据源:Graphite,I

2020-08-21 11:06:05 23650 17

原创 Spring Cloud Stream/Spring Boot 集成Kafka

实战:Spring Cloud Stream 集成Kafka一. 消息队列1.1 消息队列是什么?“消息队列”是在消息的传输过程中保存消息的容器。专业的解释说明:“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,

2020-08-19 10:20:39 2803

原创 抓取网站数据入库详解,附图文

抓取网站数据入库详解,附图文一. 分析需求刚好有这样一个需求,去抓取某个网站的页面数据,并入库。这个页面为: 爬取页面年月日选择出生于几点,性别: 男或者女 选择:进入爬取页面:二. 分析技术三. 业务流程梳理四. 实战代码五. 最后成功抽口补上...

2020-08-12 15:39:05 662

原创 如何启动一个Vue.js(Node.js)项目

如何启动一个Vue.js(Node.js)项目1.1 Node.js是什么?Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 [1]Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 [2] 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行

2020-08-10 09:14:30 5783

原创 SpringCloud Feign踩坑: 解决问题思路记录

SpringCloud Feign踩坑: 解决问题思路记录一. 一分钟快速了解Feign之前有提到过Feign的文章,同学们需要了解的,可以点开找到指定的讲解Feign的目录:SpringCloud Alibaba 从入门到精通SpringCloud工作详细技巧总结来说,Feign的功能就是远程调用,能够以一种比较优雅的方式去实现服务消费者对服务生产者的调用。二. 踩了什么样的坑?问题现象为:Feign一直调用失败,获取到的数据为null代码展示:(Gradle+Kotlin项

2020-08-07 18:46:36 1915

原创 SpringCloud Eureka 迁移 Nacos

一. Nacos与Eureka1.1 什么是注册中心?注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。简单来说,注册中心就类似一个通讯录;当我们需要给某某某打电话(消费某个服务,调用某个服务的接口)的时候,通过注册中心,我们知道这个人的号码(知道服务是否正常,服务调用路径等信息),就可以直接打电话了;也就是说,注册中心将各个服务登记在上面,并持续检查其服务是否正常,当外界访问接

2020-07-01 22:57:28 1536

原创 Kotlin零基础入门到精通(精选)

Kotlin从入门到精通一. Kotlin课程概述1.1 课程安排:1.2 什么是Kotlin?1.3 Kotlin的发展历程1.4 学习目标1.5 必备知识1.6 参考资料1.7 Hello,world二. 数据类型2.1 本章目标2.2 Boolean类型2.3 Number类型2.4 Char类型2.5 类与对象2.6 空类型和智能类型转换2.7 包2.8 区间2.9 数组三. 程序结构3.1 常量与变量3.2 函数3.3 Lambda表达式一. Kotlin课程概述1.1 课程安排:课程介绍

2020-06-08 00:20:11 20889 11

node-v12.18.2.tar.gz

Centos7、Centos服务器所需的Node环境。部署前端项目所需要的Node安装包,下载后上传至服务器,然后解压,设置环境变量后即可。

2020-07-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除