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.1、工程打包与运行(windows版)

1.2、spring-boot-maven-plugin插件的作用

1.3、Boot程序快速启动(Linux版)

二、属性配置

2.1、临时属性

2.2、开发环境中的临时属性

 2.3、配置文件的四级分类

三、多环境开发

3.1、多环境开发(yaml版)

3.2、多环境开发(文件版)

3.3、多环境分组管理 

 四、日志相关操作

4.1、日志基础操作

 4.2、日志输出格式控制

4.3、文件记录日志


一、工程打包与快速运行

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-运维实用篇复习(全)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot实用开发篇复习4(实用开发篇完)

SpringBoot实用开发篇复习4(实用开发篇完)

SpringBoot运维实用篇

SpringBoot开发实用篇复习1

SpringBoot实用开发篇复习3

SpringBoot-基础篇复习(全)