SpringBoot-运维实用篇复习(全)
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot-运维实用篇复习(全)相关的知识,希望对你有一定的参考价值。
本文主要涉及SpringBoot和运维相关的配置,主要针对实际开发和上线的时候环境怎么设置问题,下面一起开启新的学习旅程吧,冲吧,小伙伴。
在此处首先对SpringBoot的基础篇的知识进行总结,基础篇连接地址,具体如下:
1)在联网的情况下使用IDEA创建springboot项目
2)了解了parent和starter对于坐标依赖的管理。
3)了解了启动类,启动boot程序,初始化spring容器,扫描类所在的包和加载bean。
4)内嵌的Tomcat,可以使用,也可以排除。
5)REST风格隐藏访问资源的行为,GET,POST.PUT,DELETE四种请求。
6)@PathVariable,@RequetBody,@RequestParam三种参数接收的注解。
7)组合注解@RestController和四个请求映射注解***Mapping。
8)三种文件配置,properties,yaml,yml。
9)springboot整合junit,整合mybatis,整合mybatis-plus(接口层直接继承BaseMapper),整合druid。
10)可以使用lombok快速开发实体类,@Data注解就可以。
11)继承BaseMapper快速开发数据层。
12)分页查询需要依赖MP的拦截器。
13)条件查询使用LambdaQueryWrapper。
14)业务层的接口可以直接继承IService,不用自己写crud。
15)业务层的实现类可以继承ServiceImpl,避免重写所有方法。
16)表现层使用REST风格开发。
17)使用工具类R进行数据的统一化处理。
18)在前端进行请求发送,后端进行操作并显示在前端。
目录
1.2、spring-boot-maven-plugin插件的作用
一、工程打包与快速运行
1.1、工程打包与运行(windows版)
在生命周期中,先clean一下清除掉之前生成的target文件,然后需要将测试部分的test进行跳过,最后在双击package进行打包。可以在target中生成jar包,右键在资源管理器打开,在文件路径中输入cmd,在命令窗口运行jar即可,最后在浏览器访问即可。
1.2、spring-boot-maven-plugin插件的作用
该插件可以打出一个独立运行的jar包,jar包中主要包含三部分:1、程序;2、程序依赖得jar包;3、支持boot运行得工具包。
1.3、Boot程序快速启动(Linux版)
首先双击package打包程序项目,打开centos,启动虚拟机,然后右键在打开终端,通过指令ifconfig查看linux服务器ip地址。
根据ip地址,在Xshell中建立远程连接,如下:
连接成功,输入用户名和密码即可,远程操作。
将XFTP软件也远程连接linux服务器,进行文件操作,如下:
接下来,我们在Xshell使用linux指令在usr目录中创建一个名为app的目录。
cd / -> ll ->cd usr -> ll -> mkdir app -> cd app
现在可以在Xftp中将打包的项目jar包传到app文件夹内了,因为我登陆的不是root,所以需要在root下修改文件的权限,再上传,修改权限如下:
文件上传成功如下:
然后即可在服务器启动上传的项目了,如下:
启动完成发现浏览器访问不了,需要将防火墙关掉,如下指令即可。
systemctl stop firewalld.service
然后在浏览器启动,会发现可以访问了,但是没有数据,如下:
因为配置文件访问的事localhost,因为linux下的数据库不能访问localhost,所有需要在linux下建立一个数据库,首先需要在linux下安装mysql数据库,具体的方法如下:
Linux安装MySQL(超详细)_普通网友的博客-CSDN博客_linux安装mysql
当然里面应该会遇到一些小bug,自己搜索解决方案即可。
输入指令 mysql -uroot -p 并输入密码,能进入则说明安装成功了,如下:
在Navicat建立一个数据库连接,如下:
需要在linux服务器的mysql上建立数据库test,并把之前的表product导出放到Linux环境下的数据库test中,如下:
现在在Linux中先退出mysql,然后启动springboot项目,即可在浏览器访问了。
访问效果如下:
注意:本次操作过程中遇到了很多问题,最后都顺利解决了,没有再此博客上写细节,如果遇到各种细节问题,直接搜解决方案就可以,我给出的只是一个流程而已。
总结:Boot程序依赖SpringBoot的maven插件即可打包出可执行的jar。运行jar使用jar命令运行,windows和linux下的boot打包程序一样,仅需确保运行环境有效即可。
二、属性配置
2.1、临时属性
比如在执行过程中,如果启动boot程序时,需要临时修改端口号,那么怎么设置呢,可以在命令窗口加上修改端口号的操作,如下,修改端口号为81:
浏览器使用该端口号进行访问如下:
如果携带多个属性,属性之间使用多个空格隔开,命令行的配置属性可以覆盖在项目中配置的。
2.2、开发环境中的临时属性
怎么在IDEA中测试临时属性生效呢,我们在IDE中点击编辑配置,如下:
我们可以在环境中的程序参数中修改服务器端口号,如下:
启动boot程序后使用浏览器访问8081端口,如下:
另外在启动类中,可以去掉参数args,不携带参数启动springboot。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ItemApplication
public static void main(String[] args)
// SpringApplication.run(ItemApplication.class, args);
//args是从外部配置读取的形参,可以去掉
SpringApplication.run(ItemApplication.class);
2.3、配置文件的四级分类
正常开发人员会在开发过程中设置一些配置,然而项目经理在上限的时候有时候会修改相应的配置,boot基于现有的配置在弄一套配置,去覆盖原来的配置。
在IDEA的resource目录下创建一个config目录,在该目录下创建一个.yml的配置文件,该配置文件的配置可以覆盖原来的配置,比如修改端口号为8083,如下:
启动boot程序,可以发现端口号已经被覆盖了。
在打包的工程目录下,也可以创建一个配置文件,覆盖之前的配置,这样就有三级配置了。在该通缉目录中再创建config目录,一个再放置一个配置文件,属于最后的配置,也就说第4级。
最后总结一下:
三、多环境开发
3.1、多环境开发(yaml版)
首先是设置环境,然后是应用环境,环境包括:生成、开发和测试,使用---划分环境,具体如下:
对于配置过时的问题,使用新的格式就可以。
3.2、多环境开发(文件版)
把几个环境配置文件分开下,在主配置文件中设置使用哪个配置文件,如下:
3.3、多环境分组管理
根据功能可以对配置文件进行拆分成多个不同的配置文件,使用include加载多个环境。
使用group代替incude,降低配置量,便于线上的维护和管理。
3.4、多环境开发控制
使用maven中的环境配置控制boot中的环境配置。
在springboot中使用@符号引用maven中配置的变量值。
最后,先clean,再打包,就可以看到maven修改后的配置信息。
四、日志相关操作
4.1、日志基础操作
使用日志工具去记录日志,如下所示。
可以设置日志的输出级别和应用日志级别。
使用lombok提供的注解可以简化日志的声明操作。
4.2、日志输出格式控制
正常默认的日志输出格式如下,首先是时间,然后是进程的PID,然后是所属线程,然后是所属的类或接口,最后打印的是具体的日志信息。
可以根据具体的需求在配置文件中设置日志的输出格式,如下:
4.3、文件记录日志
一般会用文件记录日志,防止日志找不到了,哈哈。上面的是设置一个日志文件,下面的是设置滚动日志文件,当文件大于3kB就保存为一个。
以上是关于SpringBoot-运维实用篇复习(全)的主要内容,如果未能解决你的问题,请参考以下文章