使用 IntelliJ 在 Spring Boot 中自定义应用程序属性
Posted
技术标签:
【中文标题】使用 IntelliJ 在 Spring Boot 中自定义应用程序属性【英文标题】:Custom application properties in spring boot using IntelliJ 【发布时间】:2020-04-30 05:00:37 【问题描述】:我正在尝试使用 application.properties 以外的应用程序属性,例如资源目录中的 application_local.properties
。
这样我就可以拥有 2 个属性文件,一个用于本地,另一个用于服务器。
正如许多博客中提到的,我应该使用以下命令:
spring-boot:run -Dspring.config.location=/Users/myuser/work/MyProject/my-app/src/main/resources/application_local.properties
但这不起作用,它仍在从 application.properties 获取值。
我错过了什么,请提出建议?
谢谢
【问题讨论】:
在 spring 文档中有清楚的解释:docs.spring.io/spring-boot/docs/current/reference/html/… 【参考方案1】:1- 遵循命名约定 application-profile.properties
application-local.properties
2 套配置文件
-Dspring.profiles.active=local
简单来说,你可以使用这两个链接:
-
How to load property file based on spring profiles
spring-profiles
【讨论】:
【参考方案2】:-Dspring.profile.location
将目录作为输入。此属性的目的是指定额外的目录位置来保存您的属性文件。
您在命令中使用了属性文件名。
详细参考@Answer at other thread here
您可以按照@mehardad的建议使用
【讨论】:
【参考方案3】:-D 选项将参数发送到 Java 虚拟机。为了向Spring boot发送参数,必须使用'--'命令选项。
例子:
假设,在 application.properties 文件中定义了一个名为“spring.profiles.active”的选项,如下所示:
spring.profiles.active=dev
可以使用命令行参数覆盖该选项,如下所示:
java -jar application.jar --spring.profiles.active=prod
【讨论】:
【参考方案4】:使用 Spring 配置文件并在运行时选择,本地会
-Dspring.profiles.active=local
属性文件应该叫application-local.properties
【讨论】:
以上是关于使用 IntelliJ 在 Spring Boot 中自定义应用程序属性的主要内容,如果未能解决你的问题,请参考以下文章
在 IntelliJ 中使用 JPA 的 Spring Boot
使用 Intellij 在 Spring Boot 中使用 Gradle 构建 docker 映像
Spring Cloud Spring Boot mybatis分布式微服务云架构使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程
Spring Cloud Spring Boot mybatis分布式微服务云架构使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程