如何从java获取spring配置文件名称

时间:2017-03-09 10:20:15

标签: java spring spring-mvc spring-boot

我为每个配置文件都有一个单独的spring yaml配置文件。

我需要从CommandLineRunner后代类来读取配置文件并执行相应的脚本。

有没有办法从java获取环境配置文件名称?

我试过这个:

environment.getActiveProfiles(); 

但它只返回一个空字符串数组。

2 个答案:

答案 0 :(得分:3)

  1. 您是否拥有有效的个人资料?当没有时,它什么都没有显示。
  2. 您还可以使用environment.getProperty("spring.profiles.active")获取有效的个人资料。

答案 1 :(得分:0)

这种方法适用于我

    private static final String SPRING_PROFILES_ACTIVE = "SPRING_PROFILES_ACTIVE";     

    protected void setSpringProfile(ServletContext servletContext) {
     if(null!= System.getenv(SPRING_PROFILES_ACTIVE)){
             profile=System.getenv(SPRING_PROFILES_ACTIVE);

     }else if(null!= System.getProperty(SPRING_PROFILES_ACTIVE)){
        profile=System.getProperty(SPRING_PROFILES_ACTIVE);

     }else{
        profile="local";
     }

    log.info("***** Profile set  ---> "+ profile);    
    }

我正在使用System.getenv和System.getProperty因为我发现在我的本地系统中System.getProperty工作但我的docker容器System.getenv()工作。

另外,如果没有设置任何内容,我将配置文件默认为“本地”配置文件。