一.多环境切换
项目在运行时有很多环境,比如开发环境,测试环境,实施环境,比如这三种环境的切换,如何用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:
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和error。
2.将日志信息保存到文件中
也可以使用配置文件将日志信息保存到文件中,文件目录使用的默认是相对路径,也可以改成绝对路径,就把路径写全就可以了
在配置文件中写
logging.file.path = spring.log
然后会发现多了一个这个