如何从java获取spring概要文件名

如何从java获取spring概要文件名,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,对于每个配置文件,我都有一个单独的spring yaml配置文件 我需要从CommandLineRunner子类读取配置文件并执行适当的脚本 有没有一种从java获取环境概要文件名称的方法 我试过这个: environment.getActiveProfiles(); 但它只返回一个空字符串数组 你有活动的个人资料吗?如果不是,则不显示任何内容 您还可以使用environment.getProperty(“spring.profiles.active”)获取活动的概要文件 你有活动的个人资料

对于每个配置文件,我都有一个单独的spring yaml配置文件

我需要从
CommandLineRunner
子类读取配置文件并执行适当的脚本

有没有一种从java获取环境概要文件名称的方法

我试过这个:

environment.getActiveProfiles(); 
但它只返回一个空字符串数组

  • 你有活动的个人资料吗?如果不是,则不显示任何内容
  • 您还可以使用
    environment.getProperty(“spring.profiles.active”)
    获取活动的概要文件
  • 你有活动的个人资料吗?如果不是,则不显示任何内容
  • 您还可以使用
    environment.getProperty(“spring.profiles.active”)
    获取活动的概要文件

  • 这个方法对我很管用

        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容器系统中,getenv()起作用


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

    这个方法对我很有效

        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容器系统中,getenv()起作用

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