Spring Boot 项目中的 application.properties 文件在哪里?
Posted
技术标签:
【中文标题】Spring Boot 项目中的 application.properties 文件在哪里?【英文标题】:Where is the application.properties file in a Spring Boot project? 【发布时间】:2016-12-11 00:58:17 【问题描述】:我开始了一个新的 Spring Boot 项目,我想更改端口号,我读到我必须修改 /resource/application.properties
才能这样做。
但是我找不到这个文件,我错过了什么吗?我需要安装引导启动器吗?我不想使用 spring CLI 设置它。
我应该手动创建这个文件吗?如果是这样,我想我必须在代码中的某处将此文件标记为属性文件。那会在哪里?
非常感谢!
【问题讨论】:
如果不存在手动创建文件 【参考方案1】:Spring Boot 会在您的应用启动时自动从以下位置查找并加载 application.properties 和 application.yaml 文件:
-
类路径根
类路径 /config 包
当前目录
当前目录下的 /config 子目录
/config 子目录的直接子目录
列表按优先级排序(较低项目的值覆盖较早的项目)。
您可以在这里找到更多信息https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-files
【讨论】:
【参考方案2】:您可以手动创建它,但 application.properties 的默认位置在这里
【讨论】:
【参考方案3】:在您的第一次 Spring Boot 项目之旅中,我建议您从 Spring Starter Try this link here 开始。
它会自动为您生成项目结构,例如 this.application.perperties,它将位于 /resources 下。
application.properties 重要变化, server.port = 你的 PORT(XXXX) 默认=8080 server.servlet.context-path=/api (SpringBoot 2.x.) server.contextPath-path=/api(SpringBoot版本
如果您不想进行冗余属性设置,您可以使用任何方式 application.yml。
示例 application.yml
server:
port: 8080
contextPath: /api
application.properties
server.port = 8080
server.contextPath = /api
【讨论】:
如何从任何类访问端口变量?【参考方案4】:您也可以手动创建 application.properties 文件。
SpringApplication 将从以下位置的 application.properties 文件中加载属性并将它们添加到 Spring 环境中:
当前目录的 /config 子目录。 当前目录 类路径 /config 包 类路径根列表按优先级排序(在列表中较高位置定义的属性会覆盖在较低位置定义的属性)。 (来自the Spring boot features external configuration doc page)
所以继续创建它
【讨论】:
【参考方案5】:您需要在类路径中添加application.properties
文件。
如果您使用的是 Maven 或 Gradle,您只需将文件放在 src/main/resources
下即可。
如果您没有使用 Maven 或任何其他构建工具,请将其放在您的 src 文件夹下,应该没问题。
然后你可以在属性文件中添加一个条目server.port = xxxx
。
【讨论】:
首先我要感谢您的回答。我试过这个,但它对我不起作用。 Tomcat 甚至从一个随机端口开始。 我用java spring boot开始了一个新项目。在这里它起作用了。 如果你想直接添加到一个WAR中,只需将它放在/WEB-INF/classes/下即可以上是关于Spring Boot 项目中的 application.properties 文件在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
根据环境变量设置 Spring Boot application.properties
从 Shell 脚本优雅地关闭 Spring Boot 应用程序
使用 Spring Data JPA 在 Spring Boot 2 应用程序中发布数据
多模块 Spring Boot 项目中的 Gradle 依赖插件
SpringBoot系列——Springboot项目中的spring-boot-starter-parent,spring-boot-dependencies依赖关系