目录
SpringBoot
概念:基于Spirng框架的一站试解决方案
之前:项目开发需要利用Sping做各种框架的整合,如Spirng-Mybatis、Spirng-redis、Spring-nvc等等。
结论:会产生大量的配置文件/整合文件
之后:官方官宣0配置,确实可以做到0配置,具备对应框架的功能但是,如果不做任何配置,有部分框架用不了的;SpringMVC中的静态资源映射绝大多数的情况下,配置一个文件即可application.yml
1、配置文件:
application.yml 配置启动器相关内容
bootstrap.yml 通常是配置不变的东西,如配置中心
2、启动器starter:
Spring-Boot-starter-web
Spring-Boot-starter-jdbc
Spring-Boot-starter-xxx 等等
作用:
是将框架的功能封装调用,将启动器导入到SpringBoot工程中,SpringBoot工程就具备了该功能; *如何自定义starter:
- 将具备一定功能的SpringBoot项目打成jar包,这个简称为SpringBoot项目A
- 在SpringBoot项目B要使用该功能,只需要导入项目A对应的启动器
- 在项目A默认功能不足以使用,此时项目B就可以通过application.yml+配置类进行配置SpringBoot注解:
@configuration 标记类,那么代表是一个配置类
@bean 标记方法,代表Spring管理的javabean
@autoconfigration 自动装配
SpringCloud
概念:基于javaee的应用集成方案
五大组件:
注册中心:nacos 服务注册与发现
微服务调用 : Feign / openFeign 服务之间相互调用
熔断限流:Hystrix:熔断降级 Sentinel
负载均衡: ribbon:负载均衡
网关:getway
将外部请求转发到nacos上注册服务
作用:保护内部微服务之间的调用关系
一般这是用来做用户请求身份验证
服务雪崩:又一个微服务宕机引起整个微服务框架瘫痪
Git
概念:版本控制器
1、与SVN对比:
- 分布式
- 去中心化
- 分支
2、Git的命令
- git add.将添加、修改的文件加入暂缓区
- git commit 项目本地提交代码
- git push 向远程仓库gitee推送代码
- git clone 从远程仓库下载代码到本地
- git pull 从远程仓库更新代码
- git branch
git冲突解决
先更新再合并,最后做提交操作
Linux
概念:操作系统,服务器
1、如何部署项目:
开发人员有一个完整的项目,被打成了jar或者war包 常识:Windows部署,就是将war包丢到tomcat>webapps下会自动解压,项目会跑起来
在Linux服务器中配置jdk,Tomcat
上传jdk、Tomcat的压缩包,要借助MobaXterm.exe、FinalShell工具上传
配置jdk环境变量
1)vi /etc/profile
export JAVA_HOME=/javaxl/jdk1.8.0_151(jdk解压路径)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
解压Tomcat压缩包
tar -zxvf apache-tomcat-8.0.53.tar.gz
利用MobaXterm.exe上传项目war包,然后进入tomcat的bin目录,执行./start.sh命令
升级项目:
1.停掉tomcat服务:./shutdown
2.进入到tomcat>webapps备份,执行命令tar -zcvf ssm ssm20220610.zip
3.将升级的项目war包解压出来,此时解压出来的项目,就会覆盖原有的项目文件ssm
tar -zxvf ssm.zip
4.重启:bin ./start.sh
2、常用的命令
cd:切换目录
ll/ls:查看当前目录下的所有文件及文件夹
mkdir:创建文件夹
rm -rf:删除文件 切记:rm -rf /*不要做
rm -rf demo
vi:查看并编辑文件 :wq 退出并保存文件
ping:判断是否有网,或者与其他服务器是否可以链接
ifconfig:查看当前IP
pwd:查看当前所在目录
tar -zxvf:解压
tar -zcvf:压缩
cat : 查看命令
Docker
概念:容器技术,新一代的虚拟化技术
镜像:类:由于大量的容器是相等的,那么才会构建镜像
容器:实例对象,会通过docker容器技术,创建大量的容器
数据卷:解决多个容器中数据共享的问题
1、常用命令 :
镜像:docker pull 镜像名,docker rmi 镜像名,
docker images:查询本地镜像
docker search:查询中央仓库镜像容器: docker ps,
docker run 镜像名,
docker rm 容器名
docker inspect 容器名:查看容器的详细信息
docker exec :进入容器数据卷:docker run -v 容器ID:/目录 宿主机:目录
docker pull mysql:5.7
docker run -p 3307:3306 --name mysql1 -di
-v /home/javaxl/data/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/
-v /home/javaxl/data/mysql/data/:/var/lib/mysql
-v /home/javaxl/data/mysql/log/:/var/log
-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
2、Dockerfile:
- 制作镜像
- FROM:基础镜像
- ADD:将文件复制到容器中并解压
- COPY:将文件复制到容器中
- 构建镜像的命令:docker build .
- 上传阿里云、镜像云
3、docker 中网络
仅主机:容器IP及端口用的是宿主机的
docker run -di --name mt2 --net=host javaxl/tomcat8:v1.0
桥接:容器随机分配ip,端口独立于宿主机的
docker run -di --name mt1 -p:8081:8080 javaxl/tomcat8:v1.0
RabbitMQ
概念:消息中间件;作用提升应用程序的性能;流量削峰
生产者:消息发送方
消费者:消息消费方
Broker:RabbitMQ消息中间件服务器
消息的100%投递: