繁体   English   中英

Java Spring @Value批注和参数

[英]Java Spring @Value annotation, and parameters

因此,我有一个环境属性,该属性应该反映我的应用程序在哪个环境中运行。

@Value("${environment}")
private String environmentName; //This will be set as sandbox, staging, production

我还具有一个功能标志(功能称为“ superFeature.enable”),应根据部署应用程序的环境进行设置。

//Config file
superFeature.enable.sandbox=true
superFeature.enable.staging=false
superFeature.enable.production=false


//@Service annotated class containing call to configuration

@Value("${superFeature.enable.{environment}:false}")
private boolean isSuperFeatureEnabled;

目前,当我在沙盒环境中运行应用程序时, isSuperFeatureEnabled始终为false。 我的语法对上述代码段正确吗? 有什么我想念的吗?

你不应该放

@Value("${superFeature.enable.{environmentName}:false}")

那里? 恐怕这只是一个猜测。 那里看起来像是前后矛盾。 但是然后,我不知道上面的这两个语句在哪个上下文和顺序中执行,所以我不知道在哪里知道哪些变量。 我建议先获取更多信息。 就像,如果用环境的期望字符串替换{environment}会发生什么,那您可以在代码中获得环境值吗? 我根本不知道是否有可能使用这种双重间接访问。

应为以下内容(环境也包含在以$开头的占位符语法中):

@Value("${superFeature.enable.${environment}:false}")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM