1

我目前正在尝试实现的是在 Config-Repo/Spring Config Server 中有一些“spring.profiles.include”配置文件,以便我可以通过使用配置文件轻松启用/禁用 bean。但是,我注意到的是,如果我尝试通过 Spring Config Server 执行此操作,那么 Config-Repo 中的配置文件不会影响配置类和 bean 的创建方式。

如果我在 bootstrap.properties 或 bootstrap-someProfile.properties 中有我的配置文件,它就可以完美运行。但是,在 Config-Repo 中拥有配置文件不起作用。

下面是我想要实现的示例代码。不断发生的事情是,当我想要“releasedKraken”bean 时使用“unreleasedKraken”bean。

@Controller
public class TestingController {
  @Autowired
  Kraken kraken;

  /**
   * Test endpoint for using profiles as a way to release/unrelease code
   * @return
   */
  @RequestMapping(value = "/v1/testing/kraken", method = RequestMethod.GET)
  @ResponseBody
  public String isThisCodeReleased()
  {
      return kraken.isThisCodeReleased();
  }
}


@Configuration
public class KrakenConfiguration {

    @Bean
    @Profile("!releaseTheKraken")
    public Kraken unrelaseKraken()
    {
        final Kraken kraken = () -> "The kraken is not released.";
        return kraken;
    }

    @Bean
    @Profile("releaseTheKraken")
    public Kraken releaseKraken()
    {
        final Kraken kraken = () -> "The kraken has been released!";
        return kraken;
    }

    interface Kraken {
        String isThisCodeReleased();
    }
}

kraken.yaml - 存在于 Config-Repo

spring:
    profiles:
        include: releaseTheKraken
4

0 回答 0