我们可以在破折号`-`或下划线`_`中使用spring-boot外部配置文件名吗?

时间:2019-05-29 05:19:09

标签: java spring spring-boot

我正在尝试通过使用外部配置在窗口中运行springboot-2.x胖子。

我有三个不同的外部配置文件,如:

C:\application-myconfig.yml
C:\application_myconfig.yml
C:\applicationmyconfig.yml

配置为:

server:
  servlet:
    contextPath: /application1

mymessage: this is test message

在我的窗口中,我运行以下命令来运行spring-boot胖子。

选项1

java -jar -Dspring.config.location=file:\\\C:/application-myconfig.yml aplication1.jar

选项2

java -jar -Dspring.config.location=file:\\\C:/application_myconfig.yml aplication1.jar

选项3

java -jar -Dspring.config.location=file:\\\C:/applicationmyconfig.yml aplication1.jar

奇怪的是Option-1,而Option-2不起作用。无法找到/加载配置文件。

只有Option-3对我有用。

我的问题是我们可以将spring-boot配置文件名加上短划线-或下划线_来使用吗?

2 个答案:

答案 0 :(得分:0)

您可以在spring boot application.yml文件中使用'-'(破折号),并且spring boot会将其视为一个配置文件,并且可以创建多个配置文件。 范例: application-dev.yml application-prod.yml

您必须定义活动配置文件application.yml文件 spring.profiles.active =开发

以下是如何在Spring Boot中实现配置文件的文档 Spring Profile

答案 1 :(得分:0)

关于命名约定,对于Spring Boot应用程序,如果同时使用yml和properties文件,则可以使用连字符(-),请参阅spring文档下面的内容。请参阅

  

24.7.4 YAML缺点

关于yml文件中名称的命名约定,请参阅表

  

表24.1。轻松绑定

链接:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

也请参阅下面,春天说要引用

如果您使用环境变量而不是系统属性,则大多数操作系统不允许使用句点分隔的键名,但可以使用下划线(例如,使用SPRING_CONFIG_NAME代替spring.config.name) < / p>