Java SpringCloud配置:从bootstrap.properties/yml调用bean
可以从bootstrap.properties调用bean吗 我正在尝试实现一个云配置客户端 Bean类似于:Java SpringCloud配置:从bootstrap.properties/yml调用bean,java,spring-boot,spring-cloud,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.prop
@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}
非常感谢。根据文档,引导文件: 开箱即用,它负责加载配置属性 来自外部源,并且在本地源中解密属性 外部配置文件 而且它的内容是要在bean中引用的,而不是相反 如果您想以某种方式将活动配置文件传递给它,根据文档,您可以: 1)启动应用程序时使用-D选项:
java -jar -Dspring.profiles.active=production demo-0.0.1-SNAPSHOT.jar
2)在操作系统环境中设置
SPRING\u PROFILES\u ACTIVE
属性。根据文档,引导文件:
开箱即用,它负责加载配置属性
来自外部源,并且在本地源中解密属性
外部配置文件
而且它的内容是要在bean中引用的,而不是相反
如果您想以某种方式将活动配置文件传递给它,根据文档,您可以:
1)启动应用程序时使用-D选项:
java -jar -Dspring.profiles.active=production demo-0.0.1-SNAPSHOT.jar
2)在操作系统环境中设置
SPRING\u PROFILES\u ACTIVE
属性。您可以插入SPRING.factories
:
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.demo.MyBootstrapConfiguration
然后编写一个普通的SpringJava配置对象
@Configuration
public class MyBootstrapConfiguration {
// normal spring java config
}
您可以,插入
spring.factories
:
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.demo.MyBootstrapConfiguration
然后编写一个普通的SpringJava配置对象
@Configuration
public class MyBootstrapConfiguration {
// normal spring java config
}
我不太确定您试图实现什么,但您可以在初始化对象时使用system.getProperty()设置系统属性并在应用程序代码中检索该属性。我不太确定您试图实现什么,但您可以使用system.getProperty()设置系统属性并在应用程序代码中检索该属性在初始化对象时。非常感谢您的回复。该代码仅作为示例。真正的问题是是否可以从引导调用bean。。。不仅是为了获取活动的配置文件。。。因为你说的,显然不像我在第一部分说的。处理bootstrap.xml时还没有bean。改变其中某些选项的唯一方法是在启动应用程序时传递参数或设置适当的系统变量。非常感谢您的回复。该代码仅作为示例。真正的问题是是否可以从引导调用bean。。。不仅是为了获取活动的配置文件。。。因为你说的,显然不像我在第一部分说的。处理bootstrap.xml时还没有bean。改变其中某些选项的唯一方法是在启动应用程序时传递参数或设置适当的系统变量