我可以使用Spring Config Server提供的Spring配置文件,这样可以允许Profile annotated beans覆盖默认bean吗?

时间:2016-10-12 20:52:43

标签: spring-cloud spring-cloud-config

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

如果我在bootstrap.properties或bootstrap-someProfile.properties中有我的配置文件,它可以正常工作。但是,在Config-Repo中使用配置文件不起作用。

以下是我想要实现的示例代码。不断发生的事情是"未发行的Kraken"当我想要"已发布的Kraken"豆而不是。

@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

0 个答案:

没有答案