1

私が現在達成しようとしているのは、いくつかの「spring.profiles.include」プロファイルを Config-Repo/Spring Config Server にライブにして、プロファイルを使用して簡単に 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