簡體   English   中英

如何在Spring Boot中為類級別注釋@PropertySource獲取OS環境變量?

[英]How to fetch OS environment variable for class level annotation @PropertySource in Spring Boot?

我需要在字符串值中使用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

不確定SpEL對該注釋是否有效(JavaDocs不會說這種或那種方式)。 OS環境已經為您綁定到Spring環境中。 你有沒有嘗試過:

@PropertySource(value = "file:./${SERVICE_ENVIRONMENT}/${spring.profiles.active}.properties")

您可能還想使用file:前綴來明確如何查找文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM