首页 > 解决方案 > 如何在 spring 中覆盖 application-default.yml 值

问题描述

假设有三个独立的 Spring Boot 项目相互依赖,如下所示:

Other-App ----> My-Library ----> Other-Library

Other-Library 有一个强制属性,由 spring boot 配置属性填充。Other-App 可以选择使用 My-Library(和 Other-library)。My-library 是我自己的代码,我可以操作它(其他模块不在我的控制范围内)。

问题是如果Other-App没有设置Other-Library的属性,就会遇到应用启动异常。Other-App 没有使用必要的 My-library(和 Other-library),因此它可能没有设置所有依赖项的所有强制属性。

我在 My-Library 中创建了一个 application-default.yml 来设置 Other-library 属性的默认值。但是现在只有 application-default.yml 的 Other-App 可以覆盖我的默认值,如果它想使用它的依赖项。

有没有办法为其他模块属性设置默认值?还是有更好的方法来覆盖最终用户的 application-default.yml ?

标签: javaspringspring-bootspring-profiles

解决方案


推荐阅读