【问题标题】:How to get spring profile name from java如何从 java 中获取 spring 配置文件名称
【发布时间】:2017-03-09 10:20:14
【问题描述】:

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

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

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

我已经试过了:

environment.getActiveProfiles(); 

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

【问题讨论】:

    标签: java spring spring-mvc spring-boot


    【解决方案1】:
    1. 您有有效的个人资料吗?如果没有,它什么也不显示。
    2. 您还可以使用environment.getProperty("spring.profiles.active") 获取活跃的个人资料。

    【讨论】:

      【解决方案2】:

      这个方法很适合我

          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() 有效。

      此外,我将配置文件默认为“本地”配置文件,以防未设置任何内容。

      【讨论】:

        猜你喜欢
        • 2016-12-24
        • 1970-01-01
        • 1970-01-01
        • 2018-05-31
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2019-07-01
        • 2018-11-10
        相关资源
        最近更新 更多