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

在spring boot中将选择哪个application.properties文件

孟健
2023-03-14

在我的Spring Boot项目中,我在资源文件夹中有application-default.properties文件,在名为“config”的文件夹中有另一个application.properties文件。这个文件夹是我在项目文件夹中手动创建的。现在,当我通过eclipse运行spring boot应用程序时,它会在config目录中找到properties文件,当我创建同一项目的jar并通过java-jar运行时,它会在resource文件夹中找到application.properties文件。有人能解释一下这个行为吗?为什么在运行form eclipse时,config文件夹中的属性文件会覆盖resource文件夹中的属性文件

共有1个答案

弘伟彦
2023-03-14

默认情况下,在springboot中,application.properties的优先顺序如下:

  1. 当前目录的/config子目录
  2. 当前目录
  3. 类路径/配置包
  4. 类路径根

由于您在config文件夹中创建的application.properties不在资源目录下,所以它可能不包括在jar中(检查jar以确认是否存在)。当maven创建jar时,资源目录下的任何内容都将被复制到jar,因此如果您希望config文件夹出现在jar中,那么就将其移动到resource目录下。或者如果希望将conf保持在外部,则在与jar相同的dir中创建config文件夹,或者为config设置一个类路径,以便在使用java-jar进行部署时占用它。您可以为属性文件指定外部位置,如:

java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

阅读正式文件。

 类似资料:
  • 问题内容: 如果我用Java编写此行: 将调用哪种方法? 我可以测试一下。但是在其他类似情况下,我想知道会发生什么。 问题答案: 在最具体的方法将被调用-在这种情况下, 这通常在规范(15.12.2)中的过载解析的“确定方法签名”步骤下进行,尤其是在“选择最特定的方法”下。 在不涉及细节的情况下(你可以在此处像在规范中阅读的一样详细),引言给出了很好的总结: 如果可以访问多个成员方法并将其应用于方

  • 问题内容: 我启动了一个新的Spring引导项目,我想更改端口号,并且我读到我必须进行修改。 我找不到此文件,我错过了什么吗?我需要安装启动启动器吗?我不想使用spring CLI进行设置。 我应该手动创建该文件吗?如果是这样,我想我将不得不将此文件标记为代码中某处的属性文件。那会在哪里? 非常感谢! 问题答案: 您将需要在类路径中添加文件。 如果您使用的是Maven或Gradle,则可以将文件放

  • 我启动了一个新的Spring Boot项目,我想要更改端口号,但我读到我必须修改才能这样做。 我找不到这个文件,但是,我错过了什么吗?我需要安装启动程序吗?我不想使用spring CLI设置这个。

  • 问题内容: 当您限制通常用于分页的SQL查询返回的行数时,有两种方法可确定记录总数: 方法1 将选项包括在原始选项中,然后通过运行获取总行数: 方法二 正常运行查询,然后通过运行获取总行数 哪种方法最好/最快? 问题答案: 这取决于。请参阅有关此主题的MySQL Performance Blog帖子:http : //www.mysqlperformanceblog.com/2007/08/28/

  • 我们知道在Spark中有三种类型的连接——广播连接、随机连接和排序合并连接: 当小表连接大表时,使用广播加入; 当小表大于广播加入阈值时,使用随机连接; 当大表连接,并且连接键可以排序时,使用排序-合并连接; 如果存在两个大表的连接并且无法对连接键进行排序,会发生什么情况?Spark 将选择哪种联接类型?

  • 请考虑以下代码: 现在我要定义一个类C,它的成员f是类B,成员g来自类a,类似于这样: 我如何在C++中做到这一点?