gpt4 book ai didi

java - SPRING MVC - 使用外部文件作为@PropertySource

转载 作者:行者123 更新时间:2023-11-30 10:39:07 27 4
gpt4 key购买 nike

我想知道如何使用外部文件在不同的上下文中为我的应用程序加载一些属性。

我知道我可以在 PropertySource 注释中传递一个文件。问题是文件的路径。

我的意思是,看起来它需要文件的完整路径,但不同的环境对 Tomcat 目录有不同的路径。

我的问题是:存储这些文件的正确目录在哪里(它必须在应用程序目录之外,否则在每次部署时它都会被删除)以及我如何将它链接到我的应用程序中。

比如我现在在tomcat的/webapps目录下创建了一个/config目录。

在我的 Mac 上,我可以这样加载文件:

@PropertySource("file:/Library/Tomcat/webapps/config/db.properties" )

但我的生产应用程序在 Linux 服务器上,显然路径不同......

有任何想法或更好的最佳实践可以管理它吗?

谢谢

最佳答案

前段时间我有一个类似的问题需要解决,我们所做的是在服务器启动时提供属性文件的外部目录路径,如下所示:

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.PropertySources;

@Configuration
@PropertySources({@PropertySource("${ext.properties.dir:classpath:}/db.properties") })
public class ApplicationConfig {

}

对于基于 XML 的配置:

<context:property-placeholder
location="${ext.properties.dir:classpath:}/db.properties" order="-1"
ignore-unresolvable="true" ignore-resource-not-found="true" />

并根据环境从 application-server/jvm 提供 ext.properties.dir 值:

例如,对于 DEV:

-Dext.properties.dir=file:/dev/Library/Tomcat/webapps/config/

对于 PROD:

-Dext.properties.dir=file:/prod/Library/Tomcat/webapps/config/

关于java - SPRING MVC - 使用外部文件作为@PropertySource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39416451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com