当前位置: 首页 > 知识库问答 >
问题:

Spring Boot-添加外部属性文件

李利
2023-03-14

我在SpringBoot中有一个简单MVC应用程序,使用java-config创建(我没有web.xml)。
该应用程序具有基于JPA的DB连接。到目前为止,一切都很好,但现在我必须将db.properties从WAR内部移动到OS变量(“config_location”)指定的位置。只有说它是可能的,但是我应该如何在我的Spring应用程序中设置它呢?
我想应该在初始化器之前设置它。

然后我只看到两个选项:
-SpringApplication-有一个地方我应该从OS变量中插入文件位置,但是我找不到它,
-一些注释,它将支持OS变量,并在创建EntityManager之前将文件从它添加到Spring上下文。

我愿意接受建议我该怎么做。

共有1个答案

何博涛
2023-03-14

正如在另一个答案中提到的,@PropertySource注释是一种方法(我将添加一些细节)。在Java8中,您可以多次将它应用到您的配置类中,顺序很重要!例如,您可以进行以下配置:

@SpringBootApplication
@PropertySource("classpath:/db.properties")
@PropertySource(ignoreResourceNotFound = true, value = "file:${MY_APP_HOME}/db.properties")
@PropertySource(ignoreResourceNotFound = true, value = "file:${user.home}/.myapp/db.properties")
@ComponentScan("com.myorg")
public class Application {
     // ....
}

在这里,我假设您应该有my_app_home环境变量,并且您可能想要在user home中放置一些设置。但是这两个配置都是可选的,因为IgnoreResourceNotFound设置为true。

还要注意订单。您可以在src/main/resources/db.properties中为开发环境设置一些合理的设置。并将特定设置放在生产服务运行的主机OS中。

查看解析${...}有关详细信息,请参阅javadoc中@PropertySource resource Locations部分中的占位符。

 类似资料:
  • 我希望在运行时传递变量,一旦war文件部署在tomcat上。如何使用classplath中的application.properties以及另一个属性文件ex。abcd.properties位于specific directory.am基本上希望设置额外的类路径,并从该路径中的属性文件中读取值,以及war部署的默认类路径位置。 我使用Spring boot。其中一种方法是将所有属性传递到数据库端,

  • 我在Tomcat中部署了基于Spring Boot的war文件。我无法使用外部应用程序属性文件。我正在使用follows提供外部属性文件的路径 我也用qoutes试过 这些属性不起作用,spring正在读取绑定在war文件中的属性文件。有谁能帮我一下吗?谢谢

  • 我有一个带有spring boot的java项目,我需要加载应用程序。外部文件夹中的属性和依赖项jar。 我使用该应用程序进行了测试。类路径和加载程序中的属性。路径属性工作正常。 当我使用外部属性文件(我确信它们已被使用)时,加载程序。路径工作不正常,结果为ClassNotFound,因为JAR未加载。 此外,当我启动应用程序与**-Dloader.path=**xxx它的工作正常。 如何使用外部

  • 我在我的Minecraft客户端中有一个函数,它需要一个外部库。我在IDE中添加了它,并将其添加到lib/文件夹中,但它没有帮助。有人对此有经验吗?它们是两个罐子。

  • 问题内容: 我有一个电子应用程序。我尝试使该应用程序打开一个.exe文件。我在根文件夹中创建了一个目录,并将.exe文件放置在该目录中。在开发中,使用可以打开文件没有问题,但是当我打包应用程序(使用)时,它不会打开exe文件,并且该文件夹上也没有文件夹。 我尝试编写使用来控制台默认位置的脚本,并输出(文件)。 打包应用程序后,如何添加可以访问的外部文件? 问题答案: 通过使用extraResour

  • 本文向大家介绍SpringBoot内部外部配置文件加载顺序解析,包括了SpringBoot内部外部配置文件加载顺序解析的使用技巧和注意事项,需要的朋友参考一下 内部配置加载顺序 SpringBoot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 –file:./config/ –file:./ –cl