SpringBoot优化

一、Git

1.1 Git简介与安装

  1. Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git 仓库来存储和管理这些文件,Git仓库分为两种:
    本地仓库:开发人员自己电脑上的Git仓库
    远程仓库:远程服务器上的Git仓库

    commit:提交,将本地文件和版本信息保存到本地仓库
    push:推送,将本地仓库文件和版本信息上传到远程仓库
    pull:拉取,将远程仓库文件和版本信息下载到本地仓库
  2. 安装:Git官网下载地址,安装完在任意目录下右键显示Git GUI Here(Git图形界面)和Git Bash Here(Git命令行)即安装成功。

1.2 Git代码托管服务

  1. 常见Git代码托管服务
    (1)GitHub(地址: https://github.com/ ),是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
    (2)码云(地址: https://gitee.com/ ),是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快。
    (3)GitLab(地址: https://about.gitlab.com/ ),是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
    (4)BitBucket(地址: https://bitbucket.org/ ),是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。
  2. 使用码云创建新的仓库

1.3 Git常用命令

  1. Git全局设置:设置用户名称和Email地址,在Git命令行中执行以下命令
    (1) 设置用户信息(name和email只是一个标识,非必须是账号)
    git config --global user.name "superm"
    git config --global user.email "[email protected]"
    (2) 查看配置信息
    git config --list
    
  2. 获取Git仓库
    (1)在本地初始化一个Git仓库:在任意空目录下右键打开Git Bash,执行命令git init,即可创建一个**.git隐藏文件夹**。
    (2)从远程仓库克隆:git clone https://gitee.com/superm_chao/superm-git-practice.git
  3. 工作区、暂存区、版本库
    (1)版本库:.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
    (2)工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码。
    (3)暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage,暂存区是一个临时保存修改文件的地方。
  4. Git工作区文件的状态
    (1)untracked:未跟踪(未被纳入版本控制)
    (2)tracked:已跟踪(被纳入版本控制),Unmodified(未修改状态);Modified(已修改状态);Staged(已暂存状态)
  5. 本地仓库操作
    (1)git status:查看文件状态
    (2)git add:将文件的修改加入暂存区(git add test.java)
    (3)git reset:将暂存区的文件取消暂存(git reset test.java)或者是切换到指定版本(git reset --hard 版本号)
    (4)git commit:将暂存区的文件修改提交到版本库(git commit -m “提交了一个test.java文件” test.java)
    (5)git log:查看日志,可以看出版本号
  6. 远程仓库操作
    (1)git remote:查看远程仓库(git remote -v)
    (2)git remote add:添加远程仓库(git remote add 远程仓库别名 远程仓库URL地址),将本地仓库与远程仓库进行关联
    (3)git clone:从远程仓库克隆(git clone 远程仓库URL地址)
    (4)git pull:从远程仓库拉取(git pull 远程仓库别名 分支名),对于本地初始化的仓库拉取需要加–allow-unrelated-histories
    (5)git push:推送到远程仓库(git push 远程仓库别名 分支名),第一次需要进行身份认证(码云的账号和密码)
  7. 分支操作
     分支可以把工作从开发主线上分离开来,同一仓库可以有多个分支,各个分支相互独立,互不干扰。
    (1)git branch:查看分支,git branch(查看本地分支);git branch -r(查看远程分支);git branch -a(查看所有分支)
    (2)git branch [name]:创建名为name的分支,会继承分支的所有内容,可以git rm -rf .
    (3)git checkout [name]:切换为name的分支
    (4)git push [short-name] [name]:推送至别名为short-name(一般为origin)远程仓库的name分支
    (5)git merge [name]:合并分支,若两分支存在同名且内容不同的文件,则会出错,需手动处理合并问题
  8. 标签操作
     Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态(静态的)。
    (1)git tag:列出已有的标签
    (2)git tag [name]:创建名为name的标签
    (3)git push [short-name] [name] :将名为name的标签推送至别名为short-name的远程仓库
    (4)git checkout -b [branch] [name] :检出name标签到新的分支branch上

1.3 IDEA中使用Git

  1. 在IDEA中配置Git
     File->Settings->Version Control->Git->Path to Git executable:选择git安装后位于bin文件夹下的git.exe文件,点击右侧Test按钮进行测试是否成功。
  2. 获取Git仓库
    (1)本地初始化仓库:VCS->Create Git Repository,选择Git工作区目录即可。
    (2)从远程仓库克隆:VCS->Get from Version Control…,输入URL和选择要克隆到的文件路径,点击clone即可
  3. .gitignore文件
     .gitignore文件可以指定忽略对哪些文件的Git托管
  4. 本地仓库操作
    (1)将文件加入暂存区:选中文件->右键->Git->Add,文件由红色变为绿色。
    (2)将暂存区的文件提交到版本库:选中文件->右键->Git->Commit File…,选择要提交的文件,并填写提交注释,点击Commit提交即可,提交后文件会由绿色变为黑色。或直接选择文件夹->右键->Git->Commit Directory…。或直接点击下面绿色对勾即可(不需要add放入暂存区也可以直接提交)。

    (3)查看日志:点击下方的git栏即可查看,或选中文件->右键->Git->Show History
  5. 远程仓库操作
    (1)添加与查看远程仓库:选中任意文件->右键->Git->Manage Remotes…,即可添加与查看远程仓库,一个本地仓库可以对应多个远程仓库。
    (2)推送至远程仓库:选中任意文件->右键->Git->Push,选择要推送的库与分支,点击Push即可。或直接点击下面绿色斜向上箭头即可(前提是在本地存在提交)。或在提交的时候点击Commit and Push按钮即可同时实现提交和推送

    (3)从远程仓库拉取:选中文件->右键->Git->Pull。或直接点击下面蓝色斜向下箭头即可拉取
  6. 分支操作
     在右下角进行一系列分支操作(创建、切换、合并、查看)。
  7. 标签操作
     项目右键->Git->New Tag,写明Tag Name,再右键->Git->Push(勾选左下角Push Tags)即可。

1.4 Git代码冲突

 当本地文件的版本与目标分支中文件的版本不一致时,当存在同一行的内容不同时在进行合并时会出现冲突。

  1. IDEA图形界面解决合并时的冲突,Merge->修改并Apply->Push。
  2. 手动解决,修改合并冲突后的内容,Add到暂存区,Commit文件,Push到远程仓库即可。
  3. 先拉取后Push。

二、Linux

2.1 Linux简介与安装

  1. Linux特点:免费、开源、多用户、多任务,安全、稳定,常用于服务器操作系统。

  2. Linux系统的安装方法
    (1)物理机安装:直接将操作系统安装到服务器硬件上
    (2)虚拟机安装:通过虚拟机软件安装,虚拟机( Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。常用虚拟机软件VMware。
  3. 虚拟机安装CentOS发行版Linux系统
    (1)安装VMware虚拟机
    (2)下载CentOS7镜像http://mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/
    (3)在VMware创建新的虚拟机并设置镜像路径
    (4)网卡设置:由于启动服务器时未加载网卡,导致IP地址初始化失败,如果输入ip addr命令没有显示ip地址,则需要修改网络初始化配置,设定网卡在系统启动时初始化:
    (1) 编辑ifcfg-ens33文件
    cd /etc/sysconfig/network-scripts 
    vi ifcfg-ens33
    (2) 按I进入编辑状态
    (3) 移动光标修改ONBOOT=yes
    (4) 按Esc后输入:wq再按Enter保存并退出
    (5) 重启虚拟机客户端
    
  4. 安装SSH连接工具
     SSH(Secure Shell),建立在应用层基础上的安全协议,通过SSH连接工具就可以实现从本地连接到远程的Linux服务器,常用的SSH连接工具:FinalShell官网下载、Xshell(配合Xftp使用)。

2.2 Linux常用命令

2.2.1 Linux命令

  1. Linux命令使用技巧
    (1)Tab键实现自动补全
    (2)连续两次Tab键,给出操作提示
    (3)使用上下箭头快速调出使用过的命令
    (4)使用clear命令或Ctrl+L快捷键实现清屏
  2. Linux命令格式

2.2.2 文件目录操作命令

  1. ls:显示指定目录下的内容,语法:ls [-a|-l|-al] [dir]
    (1)-a:显示所有文件及目录(.开头的隐藏文件也会列出)
    (2)-l:除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出。ll命令等同于ls -l
    (3)-al:上边两种选项的结合
  2. cd:切换当前工作目录,即进入指定目录,语法:cd [dirName]
    (1)~:表示当前用户的home目录
    (2).:表示目前所在的目录
    (3)..:表示目前目录位置的上级目录
  3. cat:用于显示文件内容,语法:cat [-n] fileName,-n用于显示行号
  4. more:以分页的形式显示文件内容,语法:more fileName
    (1)回车键:向下滚动一行
    (2)空格键:向下滚动一屏
    (3)B:返回上一屏
    (4)q或Ctrl+C:退出more
  5. tail:查看文件末尾的内容,语法:tail [-f] fileName
    (1)-number:默认查看末尾10行,可以通过-20查看末尾20行
    (2)-f:动态读取文件末尾内容并显示,通常用于日志文件的内容输出
  6. mkdir:创建目录,语法:mkdir [-p] dirName,-p用于多层目录同时创建
  7. rmdir删除空目录,语法:rmdir [-p] dirName,-p用于多层空目录的删除
  8. rm:删除文件或者目录,语法:rm [-r|-f] name
    (1)-r:将目录及目录中所有文件(目录)逐一删除,即递归删除
    (2)-f:无需确认,直接删除
    (3)-rf:上边两种选项的结合
  9. pwd:查看当前所在目录
  10. touch:如果文件不存在,新建文件,语法:touch fileName

2.2.3 拷贝移动命令

  1. cp:用于复制文件或目录,语法:cp [-r] source dest,-r在复制目录时必须使用此选项
  2. mv:为文件或目录改名、或将文件或目录移动到其它位置,语法:mv source dest

2.2.4 打包压缩命令

  1. tar:对文件进行打包、解包、压缩、解压,语法:tar [-z|-c|-x|-v|-f] fileName [files],包文件后缀为.tar表示只是完成了打包,并没有压缩;包文件后缀为.tar.gz表示打包的同时还进行了压缩。
    (1)-z:z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
    (2)-c:c代表的是create,即创建新的包文件,打包
    (3)-x:x代表的是extract,实现从包文件中还原文件,解包
    (4)-v:v代表的是verbose,显示命令的执行过程
    (5)-f:f代表的是file,用于指定包文件的名称
    (6)-cvf:tar -cvf test.tar test ,将test打包成test.tar,且显示执行过程
    (7)xvf:tar -xvf test.tar ,将test解包,且显示执行过程
    (8)-zcvf:tar -zcvf test.tar.gz test ,将test打包并压缩成test.tar.gz,且显示执行过程
    (9)-zxvf:tar -zxvf test.tat.gz -C /,将test.tat.gz解压并解包到指定目录,且显示执行过程

2.2.5 文本编辑命令

  1. vi/vim:vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,语法:vi/vim fileName,vim是从vi发展来的一个功能更加强大的文本编辑工具,在编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。通过yum install vim对vim进行安装。
  2. 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件,如果指定的文件不存在则新建文件
  3. vim在进行文本编辑时共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。
  4. 命令模式:命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G),通过vim命令打开文件后,默认进入命令模式,另外两种模式需要首先进入命令模式,才能进入彼此。
  5. 插入模式:插入模式下可以对文件内容进行编辑,在命令模式下按[I,A,O]任意一个,就可以进行插入模式,下方会出现insert字样,在插入模式下按Esc键,回到命令模式。
  6. 底行模式:底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作,在命令模式下按[:,/]任意一个,可以进入底行模式,通过/方式进入底行模式后,可以对文件内容进行查找;通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)。

2.2.6 查找命令

  1. find:在指定目录下查找文件,语法:find dirName -name fileName,fileName可以使用通配符*
  2. grep:从指定文件中查找指定的文本内容,语法:grep word fileName,word指的是要查找的文本内容(区分大小写),fileName可以使用通配符*

2.2.7 防火墙操作

  1. 查看防火墙状态:systemctl status firewalld、firewall-cmd --state
  2. 暂时关闭防火墙:systemctl stop firewalld
  3. 永久关闭防火墙:systemctl disable firewalld
  4. 开启防火墙:systemctl start firewalld
  5. 开放指定端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent
  6. 关闭指定端口:firewall-cmd --zone=public --remove-port=8080/tcp --permanent
  7. 立即生效:firewall-cmd --reload
  8. 查看开放的端口:firewall-cmd --zone=public --list-ports
    systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
    firewall-cmd是Linux中专门用于控制防火墙的命令

2.3 软件安装

  1. 软件安装方式
    (1)二进制发布包安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可。
    (2)rpm安装:软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题。
    (3)yum安装:一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题。
    (4)源码编译安装:软件以源码工程的形式发布,需要自己编译打包。
  2. 安装JDK
    (1)下载Linux版的JDK,Linux版JDK17,并使用FinalShell自带的上传工具将JDK的二进制发布包上传到Linux.
    (2)解压安装包,命令:tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local
    (3)配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入配置:JAVA_HOME=/usr/local/jdk-17.0.7 PATH=$JAVA_HOME/bin:$PATH
    (4)重新加载profile文件,使更改的配置立即生效,命令:source /etc/profile
    (5)检查安装是否成功,命令为java -version
  3. 安装Tomcat
    (1)下载Tomcat二进制发布包Tomcat9,并上传到Linux
    (2)解压安装包,命令:tar -zxvf apache-tomcat-9.0.75.tar.gz -C /usr/local
    (3)进入Tomcat的bin目录启动服务,命令:sh startup.sh./startup.sh,要关闭防火墙或开放指定端口才可以使用Tomcat服务器
    (4)查看启动日志:more /usr/local/apache-tomcat-9.0.75/logs/catalina.out 或 tail -50 /usr/local/apache-tomcat-9.0.75/logs/catalina.out
    (5)ps -ef:查看当前运行的所有进程的详细信息,可以配合|管道符(将前一个命令的结果输出给后一个命令作为输入)查看特定进程,如ps -ef | grep tomcat,就可以查看有关tomcat的进程信息。
    (6)进入Tomcat的bin目录停止服务,命令:sh shutdown.sh./shutdown.sh
    (7)kill -9:强制结束进程,后根进程id
  4. 安装MySQL
    (1)检测当前系统中是否安装MySQL数据库,RPM(Red-Hat Package Manager),是红帽Linux用于管理和安装软件的工具。
    rpm -qa:查询当前系统中安装的所有软件
    rpm -qa | grep mysql:查询当前系统中安装的名称带mysql的软件
    rpm -qa | grep mariadb:查询当前系统中安装的名称带mariadb的软件,CentOS7自带mariadb,与MySQL数据库冲突
    (2)卸载已安装的冲突软件
    rpm -e --nodeps 软件名称
    (3)下载MySQL的rpm安装包MySQL官网下载,选择对应操作系统,后缀为.rpm-bundle.tar文件,上传到Linux
    (4)在/usr/loacl中创建新的目录mkdir mysql,tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql
    (5)进入/usr/local/mysql,强制安装:rpm -ivh *.rpm --nodeps --force,通过yum update升级现有软件以及系统内核,或yum install安装指定的工具。
    (6)启动MySQL
    systemctl status mysqld:查看mysql服务状态
    systemctl start mysqld:启动mysql服务,同样要关闭防火墙或开启指定端口才能访问
    systemctl enable mysqld:开机启动mysql服务
    netstat -tunlp:查看已经启动的服务,可以netstat -tunlp | grep mysql,前提已经yum install net-tools安装net-tools工具
    (7)查看MySQL临时密码:cat /var/log/mysqld.log | grep password
    (8)登录MySQL,修改密码,开放访问权限
    mysql -uroot -p		#登录mysql
    alter user 'root'@'localhost' identified by 'Superm_chao34';	# 先设置一个复杂的密码
    set global validate_password.length=4; 		# 设置密码长度最低位数
    set global validate_password.policy=LOW;	# 设置密码安全等级低
    alter user 'root'@'localhost' identified by '123456';	# 设置密码为123456
    select user,host from mysql.user;	# 查看用户和主机
    rename user 'root'@'localhost' to 'root'@'%';	# 更改为远程也可以访问
    
  5. 安装lrzsz
     Yum(全称为Yellow dog Updater,,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
    (1)搜索lrzsz安装包,命令为yum list lrzsz
    (2)yum在线安装,命令为yum install lrzsz
    (3)使用命令rz即可用于从Windows向Linux上传文件

2.4 项目部署

  1. 手动部署项目
    (1)将SpringBoot项目打包成jar包,并上传到Linux中。
    (2)java -jar boot工程.jar:启动项目(需要开启指定的端口,防火墙)
    (3)后台运行java -jar命令,并将日志输出到某文件:nohup java -jar boot工程.jar &> boot.log &
    (4)停止项目:kill杀死进程
  2. Shell脚本自动部署
    (1)在Linux中安装Git:yum list gityum install git
    (2)使用Git克隆代码(先转到指定目录):git clone 仓库的url
    (3)在Linux中安装Maven,将Maven安装包上传并解压Maven3.9二进制压缩包:tar -zxvf apache-maven-3.9.2-bin.tar.gz -C /usr/local
    (1) vim /etc/profile 	# 修改配置文件,加入以下内容
    export MAVEN_HOME=/usr/local/apache-maven-3.9.2
    export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
    (2) source /etc/profile 	# 重新加载配置文件
    (3) mvn -version 	# 查看Maven版本
    (4) vim /usr/local/apache-maven-3.9.2/conf/settings.xml	# 修改本地仓库,先创建repo目录
    <localRepository>/usr/local/repo</localRepository>
    
    (4)编写Shell脚本(拉取代码、编译、打包、启动)
    #!/usr/local/sh/reggie.sh
    echo =================================
    echo  自动化部署脚本启动
    echo ====
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值