springboot学习(2)

本文详细介绍了Spring Boot的多环境切换,包括在properties和yml中的配置,以及动态切换环境的方法。此外,还讨论了配置文件的位置、优先级以及如何通过运行参数和vm参数指定环境。最后,讲解了Spring Boot的日志处理,包括打印日志和日志保存到文件中的配置方法。

一.多环境切换

项目在运行时有很多环境,比如开发环境,测试环境,实施环境,比如这三种环境的切换,如何用spring boot来实现。

1.在properties中配置

在默认情况下,spring boot会读取application.properties环境。如果想设置多个环境,那命名方式是这样的
application-环境名.properties。比如一个开发环境就可以是
application-dev.properties
如果想让spring boot读取某一个具体的环境比如开发环境,就可以在application.properties中指定:spring.profiles.active=环境名
在这里插入图片描述
如果将application.properties中的注释掉,spring boot仍然会读取其他application-环境名.properties中的配置,并且preperties的优先级高于yml

2.yml切换

用3个-隔开

#主环境
server:
  port: 8883
spring:
  profiles:
    active: dev #指定打开开发环境
---
server:
  port: 8884
spring:
  profiles: dev #开发环境
---
server:
  port: 8885
spring:
  profiles: test #测试环境

在这里插入图片描述

3.动态切换环境

1.通过运行参数指定环境(命令行方式)

想运行Java代码时,右键程序入口所在区域,点击Run Configurations,然后在Arguments中的Program argument进行配置,比如

--spring.profiles.active=dev

注意前面加上两个横杠,这是语法要求

命令行方式还有一种,可以通过操作jar包来实现,这里不进行学习。

2.通过vm参数指定环境

想运行Java代码时,右键程序入口所在区域,点击Run Configurations,然后在Arguments中的VM arguments区域中设置

-Dspring.profiles.active=dev

二.配置文件位置

1.项目内部的

spring boot默认能够读取的application.properties/application.yml这两个配置文件,默认能够存放的位置有四个

file:项目根目录/config
file:项目根目录
classpath:项目根目录/config
classpath:项目根目录

并且优先级从高到低

2.项目外部的配置文件(大面积补救)

还是那个地方,Run configuration的Arguments中,写入

--spring.config.location=文件路径

如果同一个配置,同时存在于内部配置文件和外部配置文件,则外部配置文件的优先级高于内部配置文件。
这样有利于补救程序,减少麻烦
操作方法是:在命令行中,jar包所在路径下,输入
java -jar 项目.jar --spring.config.location=外部配置文件所在路径

3.项目运行参数(小面积补救)

和2其实本质上是一样的,只不过这里更直接,更有针对性。
还是在Arguments中更改,比如改端口号,就可以是这样

--server.port = 8883

也可以在命令行中直接执行

java -jar 项目.jar --server.port=8883

4.优先级

如果冲突,优先级是命令参数(3>2)>内部文件

三.spring boot日志处理

1.打印日志

spring boot默认帮我们配置好了日志,我们直接使用即可。
我们首先定义一个日志,然后试着输出五个日志

Logger logger = LoggerFactory.getLogger(TestApplication.class);
	
	@Test
	void textFun() {
		logger.trace("trace*****");
		logger.debug("debug***");
		logger.info("info***");
		logger.warn("warn***");
		logger.error("error***");
	}

但是在程序执行过程中,我们会发现只打印了后面三个
在这里插入图片描述
这是因为日志级别,这里默认info是最低级别,再低的级别就不打印了
在这里插入图片描述
如果想自定义日志级别,则需要在全局配置文件(那两个文件中任意一个)中加上

logging.level.主配置类所在包=级别

比如

logging.level.com.example.test = warn

这里就发现只打印了warn和error。

2.将日志信息保存到文件中

也可以使用配置文件将日志信息保存到文件中,文件目录使用的默认是相对路径,也可以改成绝对路径,就把路径写全就可以了
在配置文件中写

logging.file.path = spring.log

然后会发现多了一个这个
在这里插入图片描述

也可以设置日志输出格式(了解)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值