Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring启动外部属性文件(带配置文件)?_Spring_Spring Mvc_Spring Boot_Yaml - Fatal编程技术网

Spring启动外部属性文件(带配置文件)?

Spring启动外部属性文件(带配置文件)?,spring,spring-mvc,spring-boot,yaml,Spring,Spring Mvc,Spring Boot,Yaml,我试图完成的是在application.yml文件中指定一个目录,该文件直接位于类路径上(在/resources下)。我希望能够有这样的东西: spring: datasource: driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver profiles: active: dev config: location: C:\\app\\configs\\ 然后在c:\settin

我试图完成的是在application.yml文件中指定一个目录,该文件直接位于类路径上(在/resources下)。我希望能够有这样的东西:

 spring:     
  datasource:
    driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
  profiles:
    active: dev
  config:
    location: C:\\app\\configs\\
然后在c:\settings\configs\location下,我希望根据加载的配置文件拥有多个配置文件,例如:

c:\app\configs:
application-dev.yml
application-staging.yml
application-production.yml
使用这种方法,IDE将始终默认为application-dev.yml。当我通过gradle构建应用程序,并在传递命令行参数的同时运行它时,我可以指定概要文件,从而加载适当的文件。理想情况下,能够做到这一点:

java-jar-Dspring.profiles.active=staging appliation.jar

我看到的所有示例或答案都显示了如何仅从命令行传递这些配置选项,而不是使用

spring.config.location

spring.profiles.active

从默认配置文件(例如:application.yml)中。首选方法是如上所述进行设置,以最小化部署


谢谢你的建议/帮助

您可以尝试一下,将基本配置设置为“bootstrap.yml”而不是“application.yml”。之后,spring boot应该根据从配置路径中选择的配置文件选择正确的配置


对我来说,如果您不想使用命令行参数,这似乎是最接近您的用例的解决方案

谢谢你的建议。我最后要做的是,在配置文件上创建一个标志,其中保存了每个租户打开/关闭此设置的设置。这是一个很好的方法,我更愿意基于空值将其包含在Thymeleaf中。