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

标签 java spring spring-boot

我正在尝试使用外部配置在窗口中运行 springboot-2.x fat jar。

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

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

配置是:

server:
  servlet:
    contextPath: /application1

mymessage: this is test message

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

选项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-1Option-2不起作用。无法找到/加载配置文件。

只有Option-3对我有用。

我的问题是我们可以使用带有破折号-或下划线_spring-boot配置文件名吗?

最佳答案

在命名约定方面,您可以在 Spring Boot 应用程序的 yml 和属性文件中使用连字符(-),您可以引用下面的 Spring 文档。请参阅

部分

24.7.4 YAML Shortcomings

关于yml文件中名称的命名规范,参见表格

Table 24.1. relaxed binding

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

另请参阅下面,spring 说要引用

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

关于java - 我们可以使用带有破折号 `-` 或下划线 `_` 的 spring-boot 外部配置文件名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56353554/

相关文章:

spring-boot - Zuul url 映射与 spring boot,Eureka

docker - 未能执行 objective-c om.spotify :docker-maven-plugin:0. 4.3:构建异常捕获:HttpHostConnectException:连接到 localhost:2375

java - Spring Boot NoSuchMethodError

java - 当 Activity 处于后台时,在 AsyncTask.onPostExecute 上显示 DialogFragment;

java - 插入 Hashtable<Character, List<Boolean>>

java - Spring JPA 并从@ManyToMany 中删除条目

spring - 访问 webapp 外部的文件(Tomcat V6 和 Spring)

java - JmsTemplate 与 IBM MQ 队列的 CachingConnectionFactory 连接恢复

java - 混淆for循环

java - 初始化数量