【谷粒商城基础篇】基础环境搭建
谷粒商城笔记合集
分布式基础篇 | 分布式高级篇 | 高可用集群篇 |
---|---|---|
===简介&环境搭建=== | ||
项目简介与分布式概念(第一、二章) | ||
基础环境搭建(第三章) | ||
===整合SpringCloud=== | ||
整合SpringCloud、SpringCloud alibaba(第四、五章) | ||
===前端知识=== | ||
前端开发基础知识(第六章) | ||
===商品服务开发=== | ||
商品服务开发:基础概念、三级分类(第七、八章) | ||
商品服务开发:品牌管理(第九章) | ||
商品服务开发:属性分组、平台属性(第十、十一章) | ||
商品服务:商品维护(第十二、十三章) | ||
===仓储服务开发=== | ||
仓储服务:仓库维护(第十四章) | ||
基础篇总结(第十五章) |
三、基础环境搭建
3.1 安装 linux虚拟机-注意未采用
下载&安装 VirtualBox https://www.virtualbox.org/ 要开启 CPU 虚拟化
CPU 查看
下载& 安装 Vagrant
https://app.vagrantup.com/boxes/search Vagrant 官方镜像仓库
https://www.vagrantup.com/downloads.html Vagrant下载
打开window cmd窗口,运行Vagrant init centos/7 ,即可初始化一个centos系统
运行vagrant up即可启动虚拟机。系统root用户的密码是vagrant
vagrant其他常用命令
vagrant ssh 自动使用 vagrant 用户连接虚拟机
vagrant upload source [destination] [name|id] 上传文件
https://www.vagrantup.com/docs/cli/init.html Vagrant 命令行
默认虚拟机的ip 地址不是固定ip 开发不方便
Vagrant 和 VirtualBox 版本有对应问题 都安装最新版本 则安装成功
修改 Vagrantfile
config.vm.network “private_network”, ip: “192.168.56.10”
这里 ip 需要在 物理机下使用 ipconfig 命令找到
3.2 安装 docker
CentOS7安装Docker:官网链接
确定你是CentOS7及以上版本:cat /etc/redhat-release
[root@tencent ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
卸载旧版本
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
确定能上外网
yum安装gcc相关
[root@tencent ~]# yum -y install gcc Loaded plugins: fastestmirror, langpacks Determining fastest mirrors epel | 4.7 kB 00:00:00 extras | 2.9 kB 00:00:00 os | 3.6 kB 00:00:00 updates | 2.9 kB 00:00:00 updates/7/x86_64/primary_db | 19 MB 00:00:01 Package gcc-4.8.5-44.el7.x86_64 already installed and latest version Nothing to do [root@tencent ~]# yum -y install gcc-c++ Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Package gcc-c++-4.8.5-44.el7.x86_64 already installed and latest version Nothing to do
安装方式:选择第一种
安装需要的软件包
[root@tencent ~]# yum install -y yum-utils Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version Nothing to do
设置stable镜像仓库:阿里云镜像仓库
[root@tencent ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo Loaded plugins: fastestmirror, langpacks adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo
更新yum软件包索引
[root@tencent ~]# yum makecache fast Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile docker-ce-stable | 3.5 kB 00:00:00 epel | 4.7 kB 00:00:00 extras | 2.9 kB 00:00:00 os | 3.6 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/2): docker-ce-stable/7/x86_64/updateinfo | 55 B 00:00:00 (2/2): docker-ce-stable/7/x86_64/primary_db | 91 kB 00:00:00 Metadata Cache Created
安装 DOCKER CE
[root@tencent ~]# sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile ... Complete!
启动docker并设置开机自启动
[root@tencent ~]# systemctl start docker [root@tencent ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
设置阿里云镜像加速
[root@tencent ~]# mkdir -p /etc/docker [root@tencent ~]# tee /etc/docker/daemon.json <<-'EOF' > {> "registry-mirrors": ["https://kmz7kscl.mirror.aliyuncs.com"] > } > EOF {"registry-mirrors": ["https://kmz7kscl.mirror.aliyuncs.com"] } [root@tencent ~]# systemctl daemon-reload [root@tencent ~]# systemctl restart docker
3.3 docker 安装 mysql
修改云服务器安全组开放对应端口、关闭云服务器内部防火墙(systemctl stop firewalld)
下载镜像文件
[root@tencent ~]# docker pull mysql:5.7 5.7: Pulling from library/mysql 72a69066d2fe: Pull complete ... Status: Downloaded newer image for mysql:5.7 docker.io/library/mysql:5.7
创建容器实例
[root@tencent ~]# docker run -d -p 3306:3306 --restart=always -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=bilimall --name mysql mysql:5.7 81dcdad406cae27068e537854c4ea1b239ebeb703e334b22f8c298c0aa3b3cbc
在宿主机目录 /mydata/mysql/conf/ 中创建并修改配置文件 my.cnf
[root@tencent ~]# vim /mydata/mysql/conf/my.cnf [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve
重启容器
[root@tencent ~]# docker restart mysql mysql
连接mysql
3.4 docker 安装 redis
修改云服务器安全组开放对应端口、关闭云服务器内部防火墙(systemctl stop firewalld)
下载镜像文件
[root@tencent ~]# docker pull redis:6.2.1 6.2.1: Pulling from library/redis f7ec5a41d630: Pull complete ... Status: Downloaded newer image for redis:6.2.1 docker.io/library/redis:6.2.1
创建挂载目录 /mydata/redis/conf/ ,创建并编写配置文件 redis.conf
[root@tencent ~]# mkdir -p /mydata/redis/conf/ #复制官网6.2配置文件 [root@tencent ~]# vim /mydata/redis/conf/redis.conf 注释:bind 127.0.0.1 -::1 #所有ip可连接 修改:dir /data #持久化文件存储位置 修改:requirepass bilimall #密码 修改:appendonly yes #开启aof持久化
创建容器实例
[root@tencent ~]# docker run -d -p 6379:6379 --restart=always -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf --name redis redis:6.2.1 redis-server /etc/redis/redis.conf f1686b09c37f2ea46313a07a01a126c36ea0946c7254a4c3e27e4beebafe4e0d
连接redis
3.5 开发环境统一
3.5.1 Maven下载安装
maven下载
配置阿里云镜像
<mirrors><mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror> </mirrors>
配置编译阶段的jdk版本
<profiles><profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile> </profiles>
3.5.2 idea&VsCode
IDEA集成Maven
IDEA 安装 lombok、mybatisx 插件、gitee 插件
下载VsCode
- 官网
- 官网
安装VsCode
VsCode安装插件
Auto Close Tag:自动闭合HTML/XML标签
Auto Rename Tag:自动完成另一侧标签的同步修改
Chinese(Simplified)
ESLint:语法纠错
配置 setting.json
打开 VSCode 左上角文件-首选项-设置,在设置中搜索eslint,点击并翻页到最下面,点击setting.json进行配置并保存:
{"workbench.colorTheme": "Visual Studio Dark",// 值设置为true时,每次保存的时候自动格式化;值设置为false时,代码格式化请按shift+alt+F"editor.formatOnSave": true,// 每次保存的时候将代码按eslint格式进行修复:"eslint.validate": ["javascript","javascriptreact","html","vue"],"eslint.enable": true,"eslint.run": "onType","eslint.options": {"extensions": ["js","vue",".jsx",".tsx"]},"editor.codeActionsOnSave": {"source.fixAll.eslint": true},"eslint.format.enable": true,"eslint.lintTask.enable": true,"[vue]": {"editor.defaultFormatter": "dbaeumer.vscode-eslint"}, }
在任意文件:鼠标右键->使用…格式化文档->配置默认格式程序->选择eslint
这样之后 alt+Shift+f 之后就是按照 eslint 规则保存
HTML CSS Support:让 html 标签上写class 智能提示当前项目所支持的样式
HTML Snippets
JavaScript(ES6):ES6 语法智能提示以及快速输入,除j外还支持.ts, .jsx, .tsx, .html, .vue;省去了配置其支持各种包含is代码文件的时间
Live server:修改页面并保存页面实时更新
open in browser:直接右键项目单击启动
Vetur:语法高亮,智能感知 包含格式化功能,Alt+Shift+F (格式化全文) ,Ctrl+K Ctrl+F (格式化选中代码,两个Ctrl需要同时按着)
Vue 2 Snippets:vue语法提示
重启VsCode
3.5.3 安装配置 git
注册gitee账号
下载安装git客户端:官网
配置用户名、邮箱
# 配置用户名 git config --global user.name “李泽伟” # 配置邮箱 git config --global user.email "Lizewei2105@163.com"
配置 ssh 免密登录
生成密钥对,查看gon公钥
#生成密钥对 $ ssh-keygen -t rsa -C "Lizewei2105@163.com" #查看公钥 $ cat ~/.ssh/id_rsa.pub
登录 gitee 设置 SSH KEY
测试是否配置成功
$ ssh -T git@gitee.com Hi 李泽伟! You've successfully authenticated, but GITEE.COM does not provide shell access.
配置指令别名、GitBash乱码问题、忽略文件
IDEA 集成 Git
3.6 初始化项目结构
3.6.1 gitee初始化项目
新建仓库
将仓库设置为开源
从 gitee 克隆项目到IDEA
3.6.2 创建微服务
商品服务、仓储服务、订单服务、优惠卷服务、用户服务
- 都导入依赖:Spring Web、OpenFeign
- 包名格式:cn.lzwei.bilimall.xxx(product、ware、order、coupon、member)
- 模块名称格式:bilimall-xxx(product、ware、order、coupon、member)
创建子模块示例
注意修改 Spring Boot 版本:2.1.8.RELEASE
注意:springboot 2.1.8.RELEASE 只支持使用 jdk8、jdk9 进行编译
3.6.3 聚合微服务
在父项目下创建 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.lzwei.bilimall</groupId><artifactId>bilimall</artifactId><version>0.0.1-SNAPSHOT</version><name>bilimall</name><description>聚合服务</description><packaging>pom</packaging><modules><module>bilimall-product</module><module>bilimall-ware</module><module>bilimall-order</module><module>bilimall-coupon</module><module>bilimall-member</module></modules></project>
将父pom添加到IDEA中进行管理
修改父工程的 .gitignore 文件
target/ pom.xml.tag pom.xml.releaseBackup pom.xml.versionsBackup pom.xml.next release.properties dependency-reduced-pom.xml buildNumber.properties .mvn/timing.properties # https://github.com/takari/maven-wrapper#usage-without-binary-jar .mvn/wrapper/maven-wrapper.jar#添加以下内容 .idea**/mvnw **/mvnw.cmd **/*.iml **/HELP.md **/.mvn **/target **/.gitignore
3.6.4 提交并推送
将未被版本控制的文件添加到版本控制中
提交修改
推送到远程
推送成功
3.6.5 数据库搭建
连接 mysql 服务
为每个微服务创建数据库:bilimall_pms(商品)、bilimall_wms(仓储)、bilimall_oms(订单)、bilimall_sms(优惠卷)、bilimall_ums(用户)
使用 sql 脚本为每个数据库创建表:以 bilimall_pms(商品数据库)为例
3.7 管理系统
3.7.1 管理系统后端搭建
克隆 gitee人人开源 renren-fast项目,并删除项目中 .git文件:地址
将项目复制到 bilimall工程下,并将项目添加到 bilimall工程中
在mysql服务中创建数据库 bilimall_admin,并使用脚本文件创建表
修改项目中使用的数据源,并启动服务
3.7.2 管理系统前端搭建
克隆 gitee人人开源 renren-fast-vue 项目,并删除项目中 .git文件
使用 VsCode 打开项目
下载安装 Node.js:注意教程使用的版本是 10.16.3,下载地址
重新安装 npm:注意与 Node.js 对应版本为 6.9.0
下载安装 npm
PS F:\software\VsCode\Projects\renren-fast-vue> npm install npm@6.9.0 -g
配置npm使用淘宝镜像
PS F:\software\VsCode\Projects\renren-fast-vue> npm config set registry http://registry.npm.taobao.org/
下载安装 python-2.7.15:下载地址
- 在安装程序中建议选择自动配置环境变量
下载安装 visual studio:下载地址
打开终端控制台,下载依赖
PS F:\software\VsCode\Projects\renren-fast-vue> npm install
运行项目
PS F:\software\VsCode\Projects\renren-fast-vue> npm run dev
3.7.3 系统使用
使用浏览器访问:http://localhost:8001
登录账号:admin、登录密码:admin
3.8 逆向工程
3.8.1 逆向工程搭建
以商品服务为例
克隆 gitee人人开源 renren-generator 项目,并删除项目中 .git文件:地址
将项目复制到 bilimall工程下,并将项目添加到 bilimall工程中
修改项目数据源(需要逆向生成CRUD代码的数据库地址)
修改项目配置文件:配置生成的包名、作者等,指定表前缀…
修改controller代码模板:注释所有shiro的相关注解、删除包导入
启动服务,使用浏览器登录:http://localhost:80
3.8.2 代码生成
以商品服务为例
生成代码
解压并将 src文件夹 拷贝到对应的微服务中:删除 resources目录下 的src文件夹
3.8.3 公共服务搭建
创建模块
导入公共依赖
<dependencies><!-- Mybatis-plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.17</version></dependency><!-- Lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</version></dependency><!-- Http请求 --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.4.12</version></dependency><!-- apache工具包 --><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><!-- servlet --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency> </dependencies>
拷贝 renren-generator 、renren-fast 项目中的工具类,添加描述信息
注意:renren-generator 项目版本不同生成的代码不同,需要的工具类也会有所不同,请根据实况进行调整
3.8.4 代码整合
以商品服务为例
3.9 整合MybatisPlus
以商品服务为例
3.9.1 配置环境
1)导入依赖
在 bilimall-common 中导入依赖
官网链接
<!-- Mybatis-plus --> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version> </dependency>
2)配置数据源
以商品服务为例
在 bilimall-common 中导入数据库驱动:驱动与mysql版本的对应说明
<!-- mysql驱动 --> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.17</version> </dependency>
在 bilimall-product 中创建配置文件来配置数据源相关信息:application.yml
spring:datasource:username: rootpassword: bilimallurl: jdbc:mysql://114.132.162.129:3306/bilimall_pms?useUnicode=true&characterEncoding=utf-8&useSSL=falsedriver-class-name: com.mysql.cj.jdbc.Driver
3)配置MybatisPlus
以商品服务为例
根据需要在主启动类添加事务启动注解:@EnableTransactionManagement
在 bilimall-product 的主启动类中配置包扫描
@MapperScan("cn.lzwei.bilimall.product.dao")
在 bilimall-product 的配置文件中配置 sql 映射文件的位置 和 主键自增:application.yml
mybatis-plus:# mapper文件扫描:不仅扫描我的类路径,还包括依赖的其他类路径mapper-locations: classpath*:/mapper/**/*.xmlglobal-config:db-config:id-type: auto # 数据库主键自增
3.9.2 测试
以商品服务为例
修改 bilimall-product 的测试启动类:BilimallProductApplicationTests
@RunWith(SpringRunner.class) @SpringBootTest public class BilimallProductApplicationTests {@ResourceBrandService brandService;@Testpublic void contextLoads() {BrandEntity brandEntity = new BrandEntity();brandEntity.setBrandId(1L);brandEntity.setName("华为");brandService.save(brandEntity);}}
启动测试程序
3.9.3 分页配置
@Configuration // 声明配置类
@EnableTransactionManagement // 开启事务注解
@MapperScan("com.atguigu.gulimall.product.dao") // 指定扫描包
public class MyBatisConfig {/*** 引入分页插件 拦截器* @return*/@Beanpublic PaginationInterceptor paginationInterceptor() {PaginationInterceptor paginationInterceptor = new PaginationInterceptor();// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认falsepaginationInterceptor.setOverflow(true);// 设置最大单页限制数量,默认 500 条,-1 不受限制paginationInterceptor.setLimit(1000);// 开启 count 的 join 优化,只针对部分 left joinpaginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));return paginationInterceptor;}
}
3.9.4 逻辑删除
说明:
只对自动注入的sql起效:
- 插入: 不作限制
- 查找: 追加where条件过滤掉已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段
- 更新: 追加where条件防止更新到已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段
- 删除: 转变为 更新
例如:
- 删除:
update user set deleted=1 where id = 1 and deleted=0
- 查找:
select id,name,deleted from user where deleted=0
步骤1:配置 application.yml
mybatis-plus:mapper-locations: classpath*:/mapper/**/*.xmlglobal-config:db-config:id-type: auto # 数据库主键自增logic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
步骤2: 实体类字段上加上
@TableLogic
注解
/*** 是否显示[0-不显示,1显示]*/
@TableLogic(value = "1",delval = "0")
private Integer showStatus;
3.10 所有微服务逆向生成
逆向生成其他服务的代码
使用逆向工程生成代码
代码整合:将生成的代码整合到对应微服务,引入公共服务
创建配置文件 application.yaml 进行相关配置:配置数据源整合MybatisPlus,配置 端口号
在主启动类中配置包扫描:@MapperScan(“cn.lzwei.bilimall.xxx.dao”)
启动所有服务并测试接口
【谷粒商城基础篇】基础环境搭建相关推荐
- 分布式基础篇1——环境搭建(谷粒商城)
一.项目简介 1.电商模式 2.项目前置知识 3.项目技术&特色 4.项目架构图 5.微服务划分图 二.分布式基础概念 1.微服务 2.集群&分布式&节点 3.远程调用 4.负 ...
- todo谷粒商城二本地虚拟机环境搭建及项目初始化
todo 模块依赖的版本可能有变化,等项目稳定回来确认一下 VirtualBox VirtualBox相对VMware来说是轻量级的虚拟软件, 最关键的是VirtualBox是开源免费的. 使用之前要 ...
- 实战 - 谷粒商城项目:基础篇First
文章目录 SpringCloud商城- 基础篇 1. 环境搭建 1.1 centos7安装docker 1.2 docker安装MySQL5.7 1.3 docker安装Redis 1.4 环境安装配 ...
- M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档
M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档 分布式基础篇 一.环境搭建 各种开发软件的安装 虚拟机: docker,mysql,redis 主机: Maven, idea(后端),Vs ...
- C语言零基础入门——1.基础知识与环境搭建。
C语言零基础入门--1.基础知识与环境搭建. 好了.终于迎来了第一篇文章,这篇文章要做的事情非常简单,主要有三个事情 第一:C语言的介绍. 第二:计算机的基础知识. 第三:C语言的环境安装 ...
- 深度学习图像识别:基础知识与环境搭建
深度学习图像识别:基础知识与环境搭建 1. 深度学习的基本原理 什么是人工智能? 通过学习掌握了某中技能的机器,我们认为它具备了人工智能 什么是深度学习? 深度学习的概念源于人工神经网络的研究: 含多 ...
- 谷粒商城高级篇上(未完待续)
谷粒商城高级篇(上)保姆级整理 之前整理了基础篇,Typora提示将近20000词,谷粒商城基础篇保姆级整理 在学高级篇的时候,不知不觉又整理了两万多词,做了一阶段,先发出来,剩余部分整理好了再发.自 ...
- 【谷粒商城高级篇】商品服务 商品上架
谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== ===Elasticsearch=== 项目简介与分布式概念(第一.二章) Elasticsearch: ...
- 【谷粒商城高级篇】商城业务:商品检索
谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== ===Elasticsearch=== 项目简介与分布式概念(第一.二章) Elasticsearch: ...
- 【谷粒商城高级篇】Elasticsearch:全文检索
谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== ===Elasticsearch=== 项目简介与分布式概念(第一.二章) Elasticsearch: ...
最新文章
- 你有没有想过: 为什么Java中String是不可变的?
- 如何使用C#中的WebClient将数据发布到特定URL
- python入门教程完整版(懂中文就能学会)-Python入门教程完整版!(懂中文的就能学会)...
- Impala性能优化
- ES6新特性之map和reduce方法的使用
- java中字符和字节的转换_Java最佳实践–字符到字节和字节到字符的转换
- 2018java最新面试题
- LeetCode 1276. 不浪费原料的汉堡制作方案(解方程)
- 本地项目怎么推送到码云_【重谈npm】当下载一个项目到本地执行npm install报错时应该怎么办...
- 介绍一下xgb_珍藏版 | 20道XGBoost面试题,你会几个?(上篇)
- mac电脑chrome截长图
- Thingworx配置mysql的jdbc
- linux c++ toolchain 配置文件,一步一步建立基于ARM+Linux的cross toolchain
- 计算机c盘能分区吗,电脑C盘还可以分盘吗?
- 【信息安全】EDR、HIDS、NDR、MDR、XDR 区别与联系
- android点赞取消赞功能吗,Android 仿微博的点赞上报功能,持续点赞再取消
- 文献管理软件 | endnote与zotero的对比
- 只能输入中文,及中文标点符号正则/只能输入英文,及英文标点符号正则
- linux下pfam使用方法,使用pfam-scan进行预测
- 华为手机能隐藏蓝牙吗_华为手机有哪些隐藏实用功能?如何开启华为手机NFC功能...
热门文章
- SourceTree浣跨敤浠嬬粛
- BraTS2021脑肿瘤分割实战
- ora-01722 无效数字_SQL 错误: ORA-01722: 无效数字
- python偏最小二乘法回归分析_偏最小二乘回归(PLSR)- 2 标准算法(NIPALS)
- 从零开始的Docker Desktop使用,Docker快速上手 ( ̄︶ ̄) Docker介绍和基础使用
- 关于K3wise系列的二次开发
- 2014年电大计算机应用基础考,2017年电大网考计算机应用基础统考试题
- HashMap红黑树原理解析
- Java学习路线以及资料
- JS 获取元素下指定的子元素