【发布时间】:2016-07-28 05:57:39
【问题描述】:
构建一个 spring-boot 应用程序,我们依赖于第 3 方 jar 文件, 期望在类路径上找到一个带有硬编码文件名(比如 xyz.properties)的属性文件, 并从中读取其属性。
不过,我们需要“切换”此属性文件的不同版本,具体取决于我们在哪个环境中部署 jar 文件。 因此,最好在类路径中添加一个 jar 文件外部的目录,我们可以在其中放置属性文件。
谷歌搜索,我发现其他人有类似的问题, 但不是一个简单、干净的解决方案。 在我看来,弹簧属性模型假设您只关心属性名称及其值 (从 System.getProperties() 中提取它们) 而且真的不在乎每个值来自哪个属性文件。
在按照该模型构建您自己的代码时,这可能没问题, 但在依赖 3rd 方解决方案(例如我们的用例)时可能不太适合。
我发现的最简单的解决方法是“分解”spring jar 文件, 然后将所需的属性文件复制到 WEB-INF/classes 中, 然后从 JarLauncher 开始。
只是想知道是否有更好的方法,而不需要“爆炸”它?
我上面的理解是正确的,还是我忽略了一些已经支持这个用例的弹簧特性?
【问题讨论】:
标签: java spring dependency-injection spring-boot properties-file