在Spring Boot应用程序中更改application.properties名称

时间:2017-02-06 09:20:37

标签: java spring spring-boot

我在/资源中获得了application.properties个文件。我只想将名称更改为<my-project-name>.properties。根据{{​​3}},我应该可以通过将spring.config.name指定为环境属性来更改名称:

java -jar myproject.jar --spring.config.name=myproject

但是有没有办法可以用注释或在我的代码库中以某种方式做到这一点?

5 个答案:

答案 0 :(得分:1)

spring.config.location - classpath:{myproject}.properties

这对我有用。

如果它( @PropertySource )在应用程序的任何地方退出,请确保将相同的类路径放在PropertySource的值中。

.
├src
| └main
|   └resources
|     └myproject.properties

答案 1 :(得分:1)

好吧,我不确定这是不是最好的方法(如果Spring大师看到这个,请告诉我是否:),但我做了以下事情:

@PropertySource(value={"classpath:my-project.properties"}, ignoreResourceNotFound = true)

答案 2 :(得分:0)

我认为最简单的方法是在Spring Boot应用程序入口点的main方法中设置系统属性:

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        // Tell Boot to look for my-project.properties instead of application.properties
        System.setProperty("spring.config.name", "my-project");
        SpringApplication.run(MyApplication.class, args);
    }
}

答案 3 :(得分:0)

您还可以提供以下系统属性(或环境变量)来更改行为:

  • spring.config.nameSPRING_CONFIG_NAME):默认使用应用程序作为文件名的根。
  • spring.config.locationSPRING_CONFIG_LOCATION):要加载的文件(例如类路径资源或URL)。为此文档设置了单独的环境属性源,可以用系统属性,环境变量或命令行覆盖它。
$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

答案 4 :(得分:0)

您可以使用SpringApplicationBuilder设置内联属性:

SpringApplicationBuilder()
  .properties("spring.config.name=myproject")
  .sources(MyApplication.class)
  .run(args);