【问题标题】:Springboot loaded logback-spring.xml 2 times, and how to reference other properties filesspringboot加载logback-spring.xml 2次,以及如何引用其他属性文件
【发布时间】:2025-12-29 17:40:12
【问题描述】:

我在使用 springboot 1.5.4 时遇到两个问题,我无法解决。

第 1 期。

我在src/main/resources中配置了logback-spring.xml,spring boot启动时会创建两个目录,一个以'application name'启动,一个以bootstrap启动..

我很困惑为什么要创建bootstrap日志文件目录,spring boot创建了两个日志目录,顺便说一下,spring可能在启动时加载了两次logback-spring.xml。

第 2 期。

我有很多项目,一些相同的配置需要在每个项目中复制到应用程序文件中,我想将一些公共属性放在一个公共文件中。

如何引用或包含一个通用的配置文件?

spring boot application.yml中是否有如下用法:

spring.xx.inclue: ../common-project/config/common.yml

谢谢。

【问题讨论】:

  • 第一个问题解决了,spring.application.name应该在bootstrap文件中,因为logback-spring.xml引用了这个名字..
  • @EugeneUstimenko 你能告诉我spring boot中的用法吗?谢谢。
  • 如果你有微服务架构的单独项目并使用maven/gradle/ant构建整体,你可以使用build-properties插件。但是如果这些项目被分割,你可以使用@PropertySource 单独的java类来通过绝对路径包含文件。

标签: spring-boot logback


【解决方案1】:

关于 spring.application.name 是否在 bootstrap 文件中,并不是真正必要的。你可以声明一个弹簧属性:

<springProperty name="applicationName" source="spring.application.name" defaultValue="UNKNOWN_APP"/>

我认为这使得获得一个并不真正需要的 common.yml 的想法变得更容易。

但如果出于某种原因你想要这样,你可以使用属性功能:

<property resource="commons.yml" />

【讨论】: