当前位置:   article > 正文

SpringBoot2.4中profile include后不生效的解决方法_spring.profiles.include 失效

spring.profiles.include 失效

背景提要

使用SpringInitializer创建新项目后,使用原项目中的代码结构对项目进行初始化,其中springProfile包含关系如下:

application.yml
	include: repository,service,web
	active: dev
application-dev.yml
	include: repository-dev,service-dev,web-dev
application-release.yml
	include: repository-release,service-release,web-release
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

发现启动时报错说找不到数据库配置

Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (the profiles dev,repository,service,web are currently active).
  • 1
  • 2
  • 3

经查发现springBoot2.4对配置文件的加载做了更新
具体更新内容可参考Github WIKI

解决方法

强制spring使用原加载方式加载配置文件

需要在application.yml中增加如下配置

spring:
	config:
		use-legacy-processing: true
  • 1
  • 2
  • 3

WIKI中解释如下:
WIFI解释

使用profile group管理配置文件

spring:
  application:
    name: sc_server_user
  profiles:
    group:
      "dev": "repository-dev,service-dev,web-dev"
      "release": "repository-release,web-release,service-release"
    active: @activeProfiles@
    include: "repository,service,web"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

详见上述官方WIKI!

此坑已踩

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/172964
推荐阅读
相关标签
  

闽ICP备14008679号