我有一个名为 ParentA 的父存储库和一个名为 ChildA 的子存储库。 ParentA 有几个项目,其中一个是 ProjectA,在 ProjectA/pom.xml 中存在“spring-boot-starter-web”的依赖项。
结构:
家长A
├── 项目A
│ └── pom.xml
│ └── src/main/resources/application.yml
子A:父A
│ └── src/main/resources/application.xml
我现在希望我的 ChildA 使用父 application.yml 及其自己的 application.yml 中的设置,以便从 LogBack 设置以下属性。
logging:
logback:
rollingpolicy:
total-size-cap: 100KB
max-history: 1
max-file-size: 1KB
这些设置应该从父项目继承。但由于某种原因,它们并非如此。如果我在 src/main/resources/ 或 ProjectA/src/main/resources/ 中有 application.yml 并不重要。似乎什么都不起作用。 现在我正在尝试在 ProjectA 中创建一个 logback.xml 文件。然而,Spring 声称拥有的默认设置是它只向控制台生成日志,而不附加到文件。即使我根本没有配置或更改默认值,我也看到了非常不同的行为。
所以我的两个问题是:
我使用的是Spring Boot v3.3.4,我指的是这两个链接: https://docs.spring.io/spring-boot/reference/features/logging.html https://docs.spring.io/spring-boot/how-to/logging.html
我的解决方案是让一个配置类除了标准的 application.properties 之外还加载父级的“自定义”属性。
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@PropertySource("classpath:parent.properties")
public class ParentPropertiesLoader {
}
您可能会猜到属性类称为parent.properties,放置在父项目资源中。 这对我来说非常有效。 我认为 yaml 也能起到同样的作用。