我正在使用以下命令来运行我的 Spring Boot 应用程序
java -Dlibrary.system.property=value -jar myapp.jar
目前,我可以通过以下命令访问它
System.getProperty("library.system.property")
但是我需要通过 Spring 中的任何注释来访问它,例如
@value(${library.system.property})
我尝试使用
@Value("${library.system.property")
private String property;
@Bean
public SampleProvider getSampleProvider () {
return SampleProvider.from(property);
}
但是该属性的值为null
。我需要使用条件bean或其他东西吗?
最佳答案
您可以使用以下表达式访问系统属性:
@Value("#{systemProperties['library.system.property']}")
private String property
您还可以使用以下表达式访问系统环境:
@Value("#{systemEnvironment['SOME_ENV_VARIABLE']}")
private String property
最后,如果您使用 Spring Boot,只要在命令行中传递属性名称,就可以直接引用属性名称。例如,如果您像 java -jar boot.jar --some.property=value
一样启动 JAR,您可以将其读作:
@Value("${some.property}")
private String property
关于java - Spring Boot中如何获取系统属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53881318/