我需要在字符串值中使用ENV变量,然后将其提供给@PropertySource
类级别注释。但这不起作用,按原样传递String
值:
@Configuration
@PropertySource(value = "./#{systemEnvironment['SERVICE_ENVIRONMENT']}/${spring.profiles.active}.properties")
public class ApplicationSecretProperties {
...
}
此外,许多答案建议使用System.getenv("SERVICE_ENVIRONMENT")
,因为在编译时会发生以下错误:
The value for annotation attribute PropertySource.value must be a constant expression
答案 0 :(得分:0)
不确定SpEL对于该注释有效(JavaDoc不会以一种或另一种方式说)。但是OS environment已经为您绑定到Spring环境中。您是否尝试过:
Mar 14 16:47:13 vserv plesk_saslauthd[21227]: failed mail authenticatication attempt for user 'admin@******.***' (password len=8)
您可能还想使用@PropertySource(value = "file:./${SERVICE_ENVIRONMENT}/${spring.profiles.active}.properties")
前缀来明确说明如何查找文件。