商城-学习整理-基础-环境搭建(二)

目录

  • 一、环境搭建
    • 1、安装linux虚拟机
      • 1)下载&安装 VirtualBox https://www.virtualbox.org/,要开启 CPU 虚拟化
      • 2)虚拟机的网络设置
      • 3)虚拟机允许使用账号密码登录
      • 4)VirtualBox冲突
      • 5)修改 linux 的 yum 源
  • 2、安装docker
    • 1、卸载系统之前的 docker
    • 2、安装 Docker-CE(社区版)
    • 3、启动docker
    • 4、设置docker开机自启
    • 5、测试 docker 常用命令,注意切换到 root 用户下
    • 6、配置 docker 镜像加速
  • 3、docker 安装 mysql
    • 1、下载镜像文件
    • 2、创建实例并启动
    • 3、通过容器的 mysql 命令行工具连接
    • 4、设置 root 远程访问
    • 5、进入容器文件系统
  • 4、docker 安装 redis
    • 1、下载镜像文件
    • 2、创建实例并启动(需先在linux中创建redis.conf文件,使可以映射,保证挂载的时候有配置文件)
    • 3、使用 redis 镜像执行 redis-cli 命令连接
  • 5、开发环境统一
    • 1、Maven(修改maven的setting.xml文件)
    • 2、Idea&VsCode&webstorm
    • 3、安装配置 git
  • 6、创建微服务项目
    • 1、从 gitee 初始化一个项目
    • 2、商品服务、仓储服务、订单服务、优惠券服务、用户服务
    • 3、将zhenyanmall作为总项目,随便从子项目里面拷贝一个pom.xml到外面,修改配置
    • 4、添加.gitignore忽略版本管理文件
    • 5、idea安装gitee插件可以将代码提交到gitee。
  • 7、数据库初始化
  • 8、人人开源搭建后台管理系统
    • 1、将renren-fast、renren-fast-vue 克隆下来
    • 2、将renren-fast-vue中的.git文件删掉,用webstorm打开。
      • 1、安装node.js和下载依赖
      • 2、启动前端项目
    • 3、使用人人开源的代码生成器为每一个微服务生成增删改查代码
    • 4、为每个微服务生成代码和配置并解决报错
      • 1.启动时no active profile set, falling back to default profiles: default
      • 2.多profile文件形式:
      • 3.多profile配置激活
        • 3.1通过properties文件指定
        • 3.2通过yml文档块指定
        • 3.3通过configuration中的Program agruments指定
        • 3.4通过configuration中的VM options指定
        • 3.5通过configuration中的Enviroment variables指定
      • 4.配置优先顺序

一、环境搭建

1、安装linux虚拟机

1)下载&安装 VirtualBox https://www.virtualbox.org/,要开启 CPU 虚拟化

下载&安装 Vagrant
https://app.vagrantup.com/boxes/search Vagrant 官方镜像仓库
https://www.vagrantup.com/downloads.html Vagrant 下载
在安装的目录下,打开 window cmd 窗口,运行 Vagrant init centos/7,即可初始化一个 centos7 系统
在这里插入图片描述

运行 vagrant up 即可启动虚拟机。系统 root 用户的密码是 vagrant
在这里插入图片描述

vagrant 其他常用命令
 vagrant ssh:自动使用 vagrant 用户连接虚拟机。
在这里插入图片描述

 vagrant upload source [destination] [name|id]:上传文件
 https://www.vagrantup.com/docs/cli/init.html Vagrant 命令行

2)虚拟机的网络设置

默认虚拟机的 ip 地址不是固定 ip,开发不方便
 修改 Vagrantfile文件
config.vm.network “private_network”, ip: “192.168.56.10”
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
改为这个指定的子网地址(使用windows的网段,不改变windows的网段,比较熟悉的可以自己改网段,也要改windows的网段)
在这里插入图片描述
 重新使用 vagrant up 启动机器即可。然后再 vagrant ssh 连接机器
在这里插入图片描述

3)虚拟机允许使用账号密码登录

 默认只允许 ssh 登录方式,为了后来操作方便,文件上传等,我们可以配置允许账
号密码登录
Vagrant ssh 进去系统之后 (切换root账户)
vi /etc/ssh/sshd_config
修改 PasswordAuthentication yes/no
在这里插入图片描述

重启服务 service sshd restart
 以后可以使用提供的 ssh 连接工具直接连接

4)VirtualBox冲突

注意:VirtualBox 会与包括但不限于如下软件冲突,需要卸载这些软件,然后重启电脑;
冲突的软件:红蜘蛛,360,净网大师(有可能)等

5)修改 linux 的 yum 源

修改 linux 的 yum 源(可不修改,网速较慢,如果禁用,需要修改yum源)
1)、备份原 yum 源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2)、使用新 yum 源
curl -o /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.163.com/.help/CentOS7-Base-163.repo
3)、生成缓存
yum makecache

2、安装docker

Docker 安装文档:https://docs.docker.com/install/linux/docker-ce/centos/
在这里插入图片描述
docker 镜像网站:docker hub
目前是:https://hub-stage.docker.com/

以下是从docker官网文档拷贝的安装流程,安装社区版即可,公司可使用企业版。

1、卸载系统之前的 docker

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

2、安装 Docker-CE(社区版)

安装必须的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置 docker repo 的 yum 位置
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装 docker,以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io

3、启动docker

sudo systemctl start docker

4、设置docker开机自启

sudo systemctl enable docker

5、测试 docker 常用命令,注意切换到 root 用户下

https://docs.docker.com/engine/reference/commandline/docker/
查看docker目前镜像
sudo docker images

6、配置 docker 镜像加速

去阿里云官方网站去查找:阿里云官网-》登录-》控制台-》左侧导航栏-》搜索镜像-》进入容器镜像服务 ACR-》镜像加速器-》centos
在这里插入图片描述

阿里云,容器镜像服务
针对 Docker 客户端版本大于 1.10.0 的用户
您可以通过修改 daemon 配置文件/etc/docker/daemon.json 来使用加速器
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload 重启docker的后台线程
sudo systemctl restart docker 重启docker的服务

3、docker 安装 mysql

1、下载镜像文件

sudo   docker pull mysql:5.7

2、创建实例并启动

虚拟机root的密码也是vagrant,在root的账号下启动:

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-d 以后台方式运行,以哪个镜像启动容器

docker ps 查看正在运行的容器
在这里插入图片描述
容器与容器之间是相互隔离的,每一个容器都是一个完整的运行环境。
为了不每次查看容器中的日志,因此将容器中的日志挂载linux中

进入mysql容器进行验证:
docker exec -it container ID/Names /bin/bash
docker exec -it mysql /bin/bash
发现就是一个完整的linux目录结构。
在这里插入图片描述
whereis mysql
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

MySQL 配置(将以下内容拷贝到my.cnf中即可,拷贝之后注意一下,配置换行和空格,要不然重启不成功)
vi /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

注意:解决 MySQL 连接慢的问题
在配置文件中加入如下,并重启 mysql
[mysqld]
skip-name-resolve
解释:
skip-name-resolve:跳过域名解析

重启mysql,进入容器内部,看下配置文件是否在容器内部生效:
在这里插入图片描述

3、通过容器的 mysql 命令行工具连接

docker exec -it mysql mysql -uroot -proot

4、设置 root 远程访问

grant all privileges on . to ‘root’@‘%’ identified by ‘root’ with grant option;
flush privileges;

5、进入容器文件系统

docker exec -it mysql /bin/bash

4、docker 安装 redis

1、下载镜像文件

docker pull redis

2、创建实例并启动(需先在linux中创建redis.conf文件,使可以映射,保证挂载的时候有配置文件)

mkdir -p /mydata/redis/conf 
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

redis 自描述文件:(需要配置持久化)
https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf
在这里插入图片描述

3、使用 redis 镜像执行 redis-cli 命令连接

docker exec -it redis redis-cli
在这里插入图片描述

5、开发环境统一

1、Maven(修改maven的setting.xml文件)

配置阿里云镜像
<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>


配置 jdk1.8 编译项目
<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>



2、Idea&VsCode&webstorm

idea 安装 lombok、mybatisx 插件
Vscode 安装开发必备插件
Vetur —— 语法高亮、智能感知、Emmet 等
包含格式化功能, Alt+Shift+F (格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个 Ctrl需要同时按着)
EsLint —— 语法纠错
Auto Close Tag —— 自动闭合 HTML/XML 标签
Auto Rename Tag —— 自动完成另一侧标签的同步修改
JavaScript(ES6) code snippets — — ES6 语 法 智 能 提 示 以 及 快 速 输 入 , 除 js 外 还 支
持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含 js 代码文件的时间
HTML CSS Support —— 让 html 标签上写 class 智能提示当前项目所支持的样式
HTML Snippets —— html 快速自动补全
Open in browser —— 浏览器快速打开
Live Server —— 以内嵌服务器方式打开
Chinese (Simplified) Language Pack for Visual Studio Code —— 中文语言包

3、安装配置 git

1、下载 git;https://git-scm.com
2、配置 git,进入 git bash

# 配置用户名
git config --global user.name "username" //(名字)
# 配置邮箱
git config --global user.email "username@email.com" //(注册账号时用的邮箱)

3、配置 ssh 免密登录
https://gitee.com/help/articles/4181#article-header0

进入 git bash;使用:ssh-keygen -t rsa -C "xxxxx@xxxxx.com"命令。 连续三次回车。
一般用户目录下会有
或者 cat ~/.ssh/id_rsa.pub
登录进入 gitee,在设置里面找到 SSH KEY 将.pub 文件的内容粘贴进去
使用 ssh -T git@gitee.com 测试是否成功即可
Git+码云教程 https://gitee.com/help/articles/4104

6、创建微服务项目

1、从 gitee 初始化一个项目

在这里插入图片描述

使用idea进行版本控制下载该项目。
使用spring 模板创建商品模块,项目是一个微服务,项目需要导入两个必要的两个组件,一个是web中的Spring Web,另一个是Spring Cloud Rounting 中的 OpenFeign进行微服务之间互相调用
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、商品服务、仓储服务、订单服务、优惠券服务、用户服务

共同:
1)、web、openfeign
2)、每一个服务,包名 com.wxn.zhenyanmall.xxx(product/order/ware/coupon/member)
3)、模块名:zhenyanmall-coupon

在这里插入图片描述

3、将zhenyanmall作为总项目,随便从子项目里面拷贝一个pom.xml到外面,修改配置

在这里插入图片描述

4、添加.gitignore忽略版本管理文件

在这里插入图片描述

5、idea安装gitee插件可以将代码提交到gitee。

7、数据库初始化

所有的表设计,都不建立外键,因为表数据量太多,做外键关联是一个非常耗性能的操作,没插入、删除、修改一条数据,数据库都要对外键进行检查,保证数据库的一致性和完整性。
用powerDesigner打开数据库,拷贝出sql语句,建库建表。
连接虚拟机中的数据库,将mysql和redis设置为虚拟机重启,mysql和redis也自动重启,在实际项目中也一样,服务器重启,或者mysql和redis挂掉,都要自动重启,如果无法重启,则需要报警,人工手动处理。
虚拟机配置重启命令:
sudo docker update mysql --restart=always
sudo docker update redis --restart=always
在这里插入图片描述
创建数据库,所有的都是utf-8。
在这里插入图片描述
执行建表语句,建表语句可在资源下载里面获取。

8、人人开源搭建后台管理系统

按照微服务划分,我们需要创建一个后台管理系统,来操作后台管理的各个功能,后台管理系统也是前后分离的,需要编写前端代码,如果从头到尾搭建一个后台管理系统,来写前端和后端,是一个非常耗时的工作,所以我们可以用一个搭建好的脚手架工程,我们稍加改造就能作为一个后台管理系统让我们来使用,那我们就可以使用码云上的人人开源项目 。
在这里插入图片描述
进到主页
在这里插入图片描述
renren-fast是一个后台管理系统,renren-fast-vue是后台管理系统的前端项目,两个配套起来作为一个前后端分离的后台管理系统。
renren-security也是后台管理系统,做的不是前后分离的,是将我们的页面使用framemark写在一个工程里面。
renren-generator是一个代码生成器,可以帮我们在线生成entity、xml、dao、service、vue、sql代码,减少70%以上的开发任务。

1、将renren-fast、renren-fast-vue 克隆下来

将renren-fast中的.git文件删掉,复制到我们的项目里面,也加入到module里面。
在这里插入图片描述
在这里插入图片描述
将renren-fast的需要的库表建好,我们用的是mysql作为业务库,所以只需要mysql的脚本即可,库命名为admin
在这里插入图片描述
然后表创建好之后,需要在renren-fast修改一些配置文件
application.yml:指定了我们的端口号、访问项目名地址、有没有使用redis.
我们主要修改数据库,主要使用开发环境,也就是dev,打开application-dev.yml配置文件
在这里插入图片描述
修改数据库的地址,库名、账号、密码
在这里插入图片描述
然后启动renren-fast后台
在这里插入图片描述

2、将renren-fast-vue中的.git文件删掉,用webstorm打开。

安装前端开发需要依赖的环境。

1、安装node.js和下载依赖

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
http://nodejs.cn/api/
我们关注与 node.js 的 npm 功能就行;
NPM 是随同 NodeJS 一起安装的包管理工具,JavaScript-NPM,Java-Maven;
1)、官网下载安装 node.js,并使用 node -v 检查版本
2)、配置 npm 使用淘宝镜像
npm config set registry http://registry.npm.taobao.org/
3)、大家如果 npm install 安装依赖出现 chromedriver 之类问题,先在项目里运行下面命令
npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
然后再运行 npm install 下载依赖
在这里插入图片描述

2、启动前端项目

npm run dev
在这里插入图片描述
在这里插入图片描述
默认账号密码:admin admin
在这里插入图片描述
搭建前后端项目,并且已经联调通过,下面使用人人开源的代码生成器 renren-generator为每一个微服务生成增删改查代码。

3、使用人人开源的代码生成器为每一个微服务生成增删改查代码

1)下载代码生成器

git clone https://gitee.com/renrenio/renren-generator.git

2)删除.git
3)拷贝到项目中
4)加入module里面
5)修改application.yml,数据库连接信息(需要生成哪个数据库代码,则连接哪个数据库)
在这里插入图片描述
6)修改生成的模块名、包名、作者、邮箱、表名前缀在这里插入图片描述
7)启动代码生成器项目
在这里插入图片描述
8)访问http://localhost:80

在这里插入图片描述
9)选择对应的表,生成代码
在这里插入图片描述
10)生成压缩包
在这里插入图片描述
11)解压文件,可以看到生成的文件
在这里插入图片描述
12)将文件拷贝到对应模块,就是main代码拷贝过去
在这里插入图片描述
13)修改报错文件
在逆向生成的代码中,controller、service、实体类、注解、公共模块都有报错。
创建一个common,将微服务需要的每一个东西,都放到里面
在这里插入图片描述
14)每个模块都配置一下依赖zhenyanmall-common
在这里插入图片描述
15)在zhenyanmall-common添加依赖和工具类解决报错
在这里插入图片描述
mybatis-plus 解决dao层报错
lombok 解决entry中的Data注解报错 @Data是给实体类属性自动添加getter和setter方法
可以从https://mvnrepository.com/ 查找依赖
比如httpcomponents

16)使用逆向工程的时候,可以修改模板
可以去掉RequiresPermissions注解
在这里插入图片描述
再重新生成Controller,将Controller替换掉,(在第一次生成的时候就可以注释掉)
17)导入mysql驱动
18)解决common报错
删除XssHttpServletRequestWrapper (防止脚本攻击) 使用spring security解决
19)在product配置数据源连接
创建application.yml文件
20)配置Mybatis-Plus
21)测试商品的增删改查

4、为每个微服务生成代码和配置并解决报错

配置完成后,启动每个项目,然后调用一下接口,看看是否能调用成功。
properties和yml同时存在,properties先加载,yml后加载。
如果无法启动,说明pom依赖添加有问题,需要认真检查,最可能的是。
检查是否正常退出
控制台输出 :Process finished with exit code 0 正常退出添加一下依赖即可

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

如果是端口冲突,需要重新配置一下端口
在这里插入图片描述

在这里插入图片描述

1.启动时no active profile set, falling back to default profiles: default

在新启动一个spring boot项目时候会发现这样一条信息no active profile set, falling back to default profiles: default。为什么会出现这样的提示呢,我们先来看看profile,profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、 指定参数等方式快速切换环境Profile。举个例子我们在开发,测试,生产用到的配置是不同的,那么通过profile就可以帮我们指定对应的环境用对应的配置,那么如何来指定呢?

2.多profile文件形式:

– 格式:application-{profile}.properties/yml: application-dev.properties、application-prod.properties .我们可以通过application-{profile}.properties/yml的方式指定并激活不同的profile配置。

3.多profile配置激活

先给出我们需要配置的文件目录,这里举例是yml文件,如下图所示。然后具体有以下5种方法可以来指定并激活我们需要的配置。
在这里插入图片描述

3.1通过properties文件指定

比如我们要使用application-dev.yml的配置,那么在application.properties中写上spring.profiles.active=dev,那么我们的application-dev.yml的配置就被激活了,那么如何测试结果呢,很简单,我们在application-dev.yml指定服务启动端口,启动spring boot 服务,看看是不是8081端口就好了。
可以看到The following profiles are active: dev,然后启动的端口是8081说明我们想要的配置生效了,指定其他配置比如test,只要修改spring.profiles.active=test。

3.2通过yml文档块指定

在yml配置文件中通过—的形式来划分文档块,通过图中active: xx (注意中间有个空格,这是yml的基本格式)指定的值来激活相应的配置文件。

比如active: dev,那么application-dev.yml这个配置文件被激活。
在这里插入图片描述

3.3通过configuration中的Program agruments指定

在configuration中的program arguments 中写入–spring.profiles.active=dev。
在这里插入图片描述

3.4通过configuration中的VM options指定

在configuration中的VM options配置项中填写:-Dspring.profiles.active=dev.
在这里插入图片描述

3.5通过configuration中的Enviroment variables指定

在configuration中的Enviroment variables 配置项上写入:spring.profiles.active=dev
在这里插入图片描述

4.配置优先顺序

program arguments > VM options > Enviroment variables >proties 文件> yml文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/41987.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DirectX12(D3D12)基础教程(二十二) ——HDR IBL 等距柱面环境光源加载和解算及 GS 一次性渲染到 CubeMap

前序文章目录 DirectX12&#xff08;D3D12&#xff09;基础教程&#xff08;一&#xff09;——基础教程 DirectX12&#xff08;D3D12&#xff09;基础教程&#xff08;二&#xff09;——理解根签名、初识显存管理和加载纹理、理解资源屏障 DirectX12&#xff08;D3D12&…

传统软件测试过程中的测试分工

最近看了点敏捷测试的东西&#xff0c;看得比较模糊。一方面是因为没有见真实的环境与流程&#xff0c;也许它跟本就没有固定的模式与流程&#xff0c;它就像告诉人们要“勇敢”“努力”。有的人在勇敢的面对生活&#xff0c;有些人在勇敢的挑战自我&#xff0c;有些人在勇敢的…

Java打怪升级路线的相关知识

第一关:JavaSE阶段 1、计算机基础 2、java入门学习 3、java基础语法 4、流程控制和方法 5、数组 6、面向对象编程 7、异常 8、常用类 9、集合框架 10、IO 11、多线程 12、GUI编程 13、网络编程 14、注解与反射 15、JUC编程 16、JVM探究 17、23种设计模式 18、数据结构与算法 1…

修复git diff正文中文乱码

Linux git diff正文中文乱码 在命令行下输入以下命令&#xff1a; $ git config --global core.quotepath false # 显示 status 编码 $ git config --global gui.encoding utf-8 # 图形界面编码 $ git config --global i18n.commit.encoding utf-8 # …

Kafka - AR 、ISR、OSR,以及HW和LEO之间的关系

文章目录 引子举例说明 引子 AR&#xff08;Assigned Replication&#xff09;&#xff1a; 分区中的所有副本统称为AR&#xff08;Assigned Replicas&#xff09; ISR&#xff08;In-Sync Replicas&#xff09;&#xff1a;同步副本集合 ISR是指当前与主副本保持同步的副本集合…

cancal报错 config dir not found

替换classpath中间封号两边的值

如何在Microsoft Excel中使用SORT函数

虽然 Microsoft Excel 提供了一个内置的数据排序工具,但你可能更喜欢函数和公式的灵活性。 使用 SORT 函数的好处是,你可以在不同的位置对数据进行排序。如果你想在不干扰原始数据集的情况下操作项目,你会喜欢 Excel 中的 SORT 函数。但是,如果你喜欢对项目进行原位排序,…

【C++】list的模拟实现

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

数据结构(王道)——数据结构之 二叉树的存储结构

一、顺序存储 静态顺序存储 顺序存储的二叉树结构特性&#xff1a; 顺序存储的非完全二叉树特性 不完全二叉树的可能会浪费大量空间&#xff0c;所以一般顺序存储二叉树比较少用。 图示为什么很少用顺序存储来存二叉树 顺序存储的二叉树总结&#xff1a; 二、链式存储 二叉链表…

集群基础4——haproxy负载均衡mariadb

文章目录 一、环境说明二、安装配置mariadb三、安装配置haproxy四、验证 一、环境说明 使用haproxy对mysql多机单节点进行负载均衡。 主机IP角色安装服务192.168.161.131后端服务器1mariadb&#xff0c;3306端口192.168.161.132后端服务器2mariadb&#xff0c;3306端口192.168.…

springboot @Async 异步调用接口处理数据

Async 异步背景 新增的数据需要分发给下游业务系统&#xff0c;由于下游业务系统状态未知&#xff0c;所以需要异步发送数据给下游业务系统。 系统生效按钮--->controller新增-->异步调用servcie--->数据集成 在springboot框架中实现步骤 首先在启动类上加上Enable…

JMeter接口测试之文件上传

最近用JMeter做接口测试&#xff0c;频繁遇到了文件上传的接口&#xff0c;与其他一般接口的处理方式不一样&#xff0c;想着分享下&#xff0c;希望能给测试同学一点启发。 文章将围绕三个部分进行展开&#xff1a; 一、用户场景 二、接口请求参数 三、JMeter脚本编写步骤 …

leetcode 216. 组合总和 III

2023.7.18 做了这道题 组合 之后&#xff0c;本题就很容易了&#xff0c;依旧是使用回溯。 其中需要统计一下总和sum值&#xff0c;以此来判断能否加入到最终数组中。下面上代码&#xff1a; class Solution { public:vector<vector<int>> ans;vector<int> …

linux查看ipynb文件

linux查看ipynb文件 使用jupyter查看 使用jupyter查看 安装 pip install jupyter添加配置好的环境到jupyter notebook的kernel中&#xff1a; python -m ipykernel install --user --name mmdet --display-name "mmdet"运行jupyter notebook &#xff08;在ipynb…

MQTT 订阅选项的使用

在 MQTT 发布/订阅模式介绍这篇博客中&#xff0c;我们已经了解到&#xff0c;我们需要先向服务端发起订阅&#xff0c;才能从服务端接收对应的消息。如果说订阅时指定的主题过滤器决定了服务端将向我们转发哪些主题下的消息&#xff0c;那么订阅选项则是允许我们进一步定制服务…

从零搭建vue+electron桌面应用

从零搭建vueelectron桌面应用 一、准备工作1.全局下载electron2.全局下载vue脚手架3.创建vue项目&#xff08;这里用的是vue2版本&#xff09;4.安装打包插件5.安装electron-builder&#xff0c;安装后可以直接生成主进程的配置文件6.在vue.config.js中添加以下配置 二、运行项…

idea 自定义类注释模板和方法模板,无警告

背景&#xff1a;idea&#xff1a;IntelliJ IDEA 2023.1.3 (Ultimate Edition) 效果&#xff1a;&#xff08;主要是没无参&#xff0c;不会换行&#xff09; 类&#xff1a; /** * author sss* date ${DATE} on ${TIME}* desc $NAME*/# 完全复制上面的&#xff0c;删除这一行…

Git #01 操作记录

本篇内容 0. 前期配置1. 仓库1.1 上传本地代码到远程仓库 0. 前期配置 请提前配置好 git 的全局用户名&#xff1a; # xin&#xff1a;账号名 $ git config --global user.name "xin" # xin163.com&#xff1a;账号绑定的邮箱地址 $ git config --global user.emai…

vue注意点:$attrs、$slots!插槽

$attrs 当父组件给子组件传值&#xff0c;子组件并没有接收数据时&#xff0c;此时数据在$attrs中可以拿到&#xff0c;并且如果子组件不需要使用数据&#xff0c;而孙组件需要&#xff0c;则可以直接v-bind"$attrs"传给孙。 <-- 父组件 --> <div><…

目标检测算法:FPN思想解读

目标检测算法&#xff1a;FPN思想解读 说明 ​ FPN算法一种方法/思想&#xff0c;在许多的模型架构中都经常采用&#xff0c;也是提高模型精度的重要方法。 免责申明 ​ 有误写/错写/错误观点/错误解读&#xff0c;或者大家有其它见解&#xff0c;都可以在评论区指出&#xff0…