文章目录

  • 一.高级属性配置
  • 1.1 简介
  • 1.2 临时属性设置
  • 1.3 配置文件的四级分类
  • 1.4 自定义配置文件
  • 二.多环境开发
  • 2.2 多环境开发(yaml版)
  • 2.3 多环境开发多文件版(yaml版)
  • 2.4 多环境开发(Properties版)
  • 2.5 多环境分组管理
  • 三.日志管理
  • 3.1 日志基础操作
  • 3.2 日志级别控制
  • 3.3 快速创建日志对象
  • 3.4 日志输出格式控制
  • 3.5 文件记录日志


一.高级属性配置

1.1 简介

如果我们的SpringBoot项目已经在服务器上进行了部署(部署的步骤见我这篇博客)有时候我们的SpringBoot项目在服务器上运行的时候可能出现一些问题,例如端口冲突等,所以我们需要对项目的属性进行一些配置。

1.2 临时属性设置

启动端口配置

在idea中我们直接修改相应的yaml文件中的端口属性就行,但是在服务器上的配置流程有所不同,我们可以直接在启动命令后加上我们需要配置的临时属性即可

java -jar test-0.0.1-SNAPSHOT.jar --server.port=8080
 #要配置更多属性只需要空格加上--[属性名]=[属性值]即可

springboot在线做题项目 springboot项目上线_运维

运行结果

springboot在线做题项目 springboot项目上线_配置文件_02

当然idea中也是可以设置启动时的临时属性的,这也说明临时属性的优先级是大于欧yaml配置的,具体的添加方法如下

springboot在线做题项目 springboot项目上线_运维_03

如何取消临时参数的作用

springboot在线做题项目 springboot项目上线_spring boot_04

1.3 配置文件的四级分类

前面我们在服务器部署项目时,想要修改配置是通过启动命令后加临死属性来解决的,这种方法是比较麻烦的,我们可以基于现有的yaml配置文件的配置,去做一套新的配置在项目部署时可以覆盖原来的配置,这样就不需要在命令行配置临时属性了。下面展示了springBoot不同的配置文件级别,级别越高优先级越大:

  1. 二级配置文件(给开发经理用)

在一级配置文件所在的目录下创建一个config文件夹,然后将我们新的配置文件放进去,该配置文件就是我们的二级配置文件

springboot在线做题项目 springboot项目上线_springboot在线做题项目_05

在一级配置文件(给程序员用)中我们配置了端口号为80,在二级配置文件中我们 配置了端口号为82,运行程序会发现端口号为82,说明二级配置文件生效了。

springboot在线做题项目 springboot项目上线_配置文件_06

  1. 三级配置文件(给运维人员用)

将我们的配置文件在服务器放在与springBoot的运行jar包同级的目录即可(我们可以发现下次我们要在服务器上修改配置不需要再使用命令行,只需要在jar包所在的目录创建一个新的配置文件即可,这里我们令新的配置文件设置启动端口号为83),下面我在服务器下springboot的jar包所在的目录下创建了一个配置文件:

springboot在线做题项目 springboot项目上线_java_07

修改配置文件内容,设置启动端口号为83

springboot在线做题项目 springboot项目上线_java_08

运行结果

springboot在线做题项目 springboot项目上线_java_09

  1. 四级配置文件(给大boss用)

原理很简单,在springboot的项目jar包所在的文件夹下创建一个config目录,然后将四级配置文件放进去即可。这里我们设置四级配置文件的内容为设置端口号为84

springboot在线做题项目 springboot项目上线_springboot在线做题项目_10

修改四级配置文件的内容

springboot在线做题项目 springboot项目上线_java_11

运行程序,查看结果

springboot在线做题项目 springboot项目上线_springboot在线做题项目_12

另外在同一目录下yml文件的优先级是低于properties文件的优先级的

1.4 自定义配置文件

上一小节我们使用的配置文件的配置名都是默认的application,那么如果修改我们的配置文件名,去自定义我们的配置文件名并让其生效呢,这里提供了几种方法。

方法一:idea参数列表修改

springboot在线做题项目 springboot项目上线_java_13

上面图片那句话可以改成安装类路径去找配置文件

--spring.config.location=classpath:/jakiechai.yml#配置文件所在的路径

二.多环境开发

多环境开发,其实就是说我们的电脑上写的程序最终要放到别人的服务器上去运行。每个计算机环境不一样,这就是多环境,其核心还是配置文件的问题。

2.2 多环境开发(yaml版)

  1. 设置环境

我们需要在yml配置文件中配置不同的环境,例如生产环境、开发环境以及测试环境

springboot在线做题项目 springboot项目上线_运维_14


2. 应用环境

再为应用环境配置一个区域即可

springboot在线做题项目 springboot项目上线_spring boot_15


3. 运行结果

springboot在线做题项目 springboot项目上线_java_16

2.3 多环境开发多文件版(yaml版)

上面我们在使用yaml进行多环境开发时发现了一个问题,就是如果把多个环境的配置放在一个文件里面,配置会显的乱,所以我们可以将配置文件分割成多个部分来分别管理。

  1. 创建3个环境的配置文件

springboot在线做题项目 springboot项目上线_配置文件_17


3. 删除配置中冗余的配置

springboot在线做题项目 springboot项目上线_java_18


4. 运行结果

springboot在线做题项目 springboot项目上线_java_19

2.4 多环境开发(Properties版)

上面做了yml版的多环境开发,现在实现以下Properties版的多环境开发配置,其操作流程几乎和yaml版的一模一样,只是语法和yaml有点不同,这里就不演示了。

2.5 多环境分组管理

在实际开发中我们会为每个环境独立创建一个配置文件,例如数据库我们会创建一个配置文件,缓存我们会创建一个配置文件等等,而在主配置文件中使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境使用逗号隔开。

  1. 为dev环境,创建几个子环境配置文件

springboot在线做题项目 springboot项目上线_配置文件_20


3. 在dev主环境中配置使得多个子环境配置文件生效

springboot在线做题项目 springboot项目上线_配置文件_21

在后面的版本include进行了替换使用了下面这种配置方法,它给每个环境的配置文件都进行了配置,而且优先级进行了反转

springboot在线做题项目 springboot项目上线_配置文件_22

三.日志管理

3.1 日志基础操作

日志在我们编程的时候用于帮助我们调试代码,在项目运营的时候记录运行的信息。在运营期间记录的信息主要有三种:

  1. 记录日期运营重要信息
  2. 记录应用报错信息
  3. 记录运维过程数据
  1. SpringBoot中使用日志

使用的是slfj4日志

springboot在线做题项目 springboot项目上线_java_23

运行结果

springboot在线做题项目 springboot项目上线_运维_24

3.2 日志级别控制

上面输出结果我们发现,只打印了3个日志信息,还有一个debug没有打印,这是因为系统默认级别是info级别,所以info级别以上的信息是打印不出来的,我们可以通过配置来启动某个级别,常见的日子级别(其中2到5是常用的)

  1. Trace:运行堆栈信息
  2. Debug:程序员调试代码用
  3. Info:记录运维过程数据
  4. Warn:记录运维过程的报警数据
  5. Error:记录错误堆栈信息
  6. Fatal:灾难信息,合并计入Error

在主配置文件中启动debug日志级别方法一(不推荐使用)

springboot在线做题项目 springboot项目上线_java_25

运行结果

springboot在线做题项目 springboot项目上线_springboot在线做题项目_26


在主配置文件中启动debug日志级别方法二(推荐使用)

这种方法是将系统启动时的默认级别设置为debug级别即可,这样debug级别及以下的级别都会被打印出来

springboot在线做题项目 springboot项目上线_spring boot_27

运行结果

springboot在线做题项目 springboot项目上线_配置文件_28


其它设置方法

springboot在线做题项目 springboot项目上线_spring boot_29

3.3 快速创建日志对象

如下图,如果我们要使用日志对象的话,似乎每次都要在要使用的文件下实现这句代码,如果代码文件过多操作会非常的繁琐,所以出现了一些快速创建日志对象的方法。

springboot在线做题项目 springboot项目上线_运维_30

  1. 继承类实现

创建被继承的类,然后需要使用日志的直接继承这个类即可

springboot在线做题项目 springboot项目上线_java_31


2. Lombok工具的使用

lombook使用方法看我这篇博客直接在要使用日志的类上加上@Slf4j注解即可食用呢

springboot在线做题项目 springboot项目上线_java_32

3.4 日志输出格式控制

我们控制台见到的日子内容如下

springboot在线做题项目 springboot项目上线_spring boot_33

我们在配置文件可以对日志格式进行修改

springboot在线做题项目 springboot项目上线_spring boot_34

%d:日期
%clr():设置颜色,后面不加{}就会使用默认的颜色,加上{}在里面填入我们想要的颜色即可
%5p:p表示日志级别,5表示这一块的长度
%16t:t表示线程名,16表示长度
%-40.40c:c表示日志所属类和接口,前面一个40表示该块的长度,-表示在该块消息左对齐.40c表示内容超过40多的就截断
%m:表示日志消息
%n:换行

springboot在线做题项目 springboot项目上线_spring boot_35

3.5 文件记录日志

前面日志我们都是在控制台写的,为了保存日志信息我们可以把日志信息写到文件中

在配置类中配置

springboot在线做题项目 springboot项目上线_配置文件_36


运行结果

springboot在线做题项目 springboot项目上线_spring boot_37

现在问题又来了,如果我们的日志每次运行都记,那么日志问价将会特别大,所以我们这里设置滚动日志(这里和linux那里的日志管理原理有点类似)

springboot在线做题项目 springboot项目上线_springboot在线做题项目_38

max-file-size:设置日志文件的最大容量
file-name-pattern:设置文件名类型