我目前正在尝试实现的是有一些" 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