天天看点

springboot学习(2)

一.多环境切换

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

1.在properties中配置

在默认情况下,spring boot会读取application.properties环境。如果想设置多个环境,那命名方式是这样的

​application-环境名.properties​

​。比如一个开发环境就可以是

​application-dev.properties​

​。

如果想让spring boot读取某一个具体的环境比如开发环境,就可以在application.properties中指定:​

​spring.profiles.active=环境名​

springboot学习(2)

如果将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:      
springboot学习(2)

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***");
  }      

但是在程序执行过程中,我们会发现只打印了后面三个

springboot学习(2)

这是因为日志级别,这里默认info是最低级别,再低的级别就不打印了

springboot学习(2)

如果想自定义日志级别,则需要在全局配置文件(那两个文件中任意一个)中加上

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

比如

logging.level.com.example.test =      

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

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

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

在配置文件中写

logging.file.path = spring.log      

然后会发现多了一个这个

springboot学习(2)

继续阅读