No active profile set问题

601 阅读2分钟

问题

今天启动项目失败,各种少配置报错,这些配置都在 application-dev.yml 文件中配置好了的。看起来并没有生效。

2023-04-28 09:31:36.395 INFO 34632 --- [ main] EnableEncryptablePropertiesConfiguration : Bootstraping jasypt-string-boot auto configuration in context: application-1
2023-04-28 09:31:36.396 INFO 34632 --- [ main] c.m.s.starter.ApplicationStarter : No active profile set, falling back to default profiles: default
2023-04-28 09:31:38.685 INFO 34632 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!

往上翻了翻 console 日志,发现了这么一行:No active profile set, falling back to 1 default profile: "default"。

这个问题不是错误,因为它的日志级别是 info(log.level = info),但上文的英文是什么意思呢?翻译成中文是:未设置激活的配置文件,回退到 1 个默认配置文件:“默认”。

原因

为什么会出现这样的提示呢,我们先来看看profile,profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、 指定参数等方式快速切换环境Profile。举个例子我们在开发,测试,生产用到的配置是不同的,那么通过profile就可以帮我们指定对应的环境用对应的配置。

配置优先顺序

program arguments  >  VM options  >  Enviroment variables  >properties 文件> yml文件

program arguments

--spring.profiles.active=dev

VM options

-Dspring.profiles.active=dev

Enviroment variables

spring.profiles.active=dev

properties文件

application.properties中写上spring.profiles.active=dev,那么我们的application-dev.yml的配置就被激活了。

yml文件

spring boot是2.5以前的版本,application.yml文件中配置:

spring: # 指定哪个文件,比如dev.yml local.yml 
  profiles: 
    active: dev

application-dev.yml的配置就被激活了。
spring boot是2.5以后的版本,application.yml文件中配置调整为:

spring: # 指定哪个文件,比如dev.yml local.yml 
  config: 
    activate: 
      on-profile: -dev

————————————————
版权声明:本文为CSDN博主「beAwesomeToday」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/benbenniaon…

版权声明:本文为CSDN博主「互联网全栈开发实战」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/lvoelife/ar…