Spring Cloud Config:从bootstrap.properties/yml调用bean

时间:2018-01-12 09:21:24

标签: java spring-boot spring-cloud

是否可以从bootstrap.properties调用bean?

我正在尝试实施云配置客户端。

Bean类似于:

@Bean
public MyObject myObject(String environment) {
   return new MyObject(environment);
}

 ....

public class MyObject {
  private String environment;

 // getters setters 
}

在bootstrap.properties文件中,我有以下一行:

spring.profiles.active= #Here I should get the value from the bean 

是否可以编写如下内容:

spring.profiles.active= ${myObject.environment}

非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以插入spring.factories

org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.demo.MyBootstrapConfiguration

然后编写一个普通的Spring Java配置对象

@Configuration
public class MyBootstrapConfiguration {
  // normal spring java config
}

答案 1 :(得分:0)

基于文档,引导程序文件:

  

开箱即用,它负责加载配置属性   从外部来源,也解密本地的属性   外部配置文件

并且其内容应在bean中引用,而不是相反。

如果您想以某种方式将活动个人资料传递给它,可以根据您的文档:

1)启动应用时使用-D选项:

java -jar -Dspring.profiles.active=production demo-0.0.1-SNAPSHOT.jar

2)在您的操作系统环境中设置SPRING_PROFILES_ACTIVE属性。