【问题标题】:Is something like Microsoft.Extensions.Configuration available in Java?Java 中是否有类似 Microsoft.Extensions.Configuration 的东西?
【发布时间】:2021-03-29 15:45:45
【问题描述】:

我需要通过环境变量为应用程序提供配置,并提出了以下代码。我来自 .NET Core 背景,习惯使用 Microsoft.Extensions.Configuration 命名空间中的工具。

Java 中有哪些与这些工具大致相似的工具?具体来说,有没有一种无需显式读取环境变量即可填充 POJO 类的方法?

public class Settings {

    private String applicationKey;

    public Settings() {
        applicationKey = System.getenv("MYAPP_APPLICATION_KEY");
        uri = System.getenv("MYAPP_URI");
    }

    public String getApplicationKey() {
        return applicationKey;
    }
}

【问题讨论】:

  • "有没有一种无需显式读取环境变量即可填充 PO 类的方法?" - 什么是 PO 类?
  • @JeffScottBrown - PO =“普通旧”。这可能不是一个流行的术语……在 .NET 中,我们使用 POCO(Plain Old Clr Object)。我刚刚更新了使用 POJO 的问题 - 这个词是否更普遍?

标签: java configuration environment-variables


【解决方案1】:

具体来说,有没有办法填充 POJO 类而无需 显式读取环境变量?

Java 本身并没有专门用于支持您所说的内容,但是有很多库可以提供帮助。例如,如果您使用 Micronaut,您的代码可能会更改为如下所示:

import io.micronaut.context.annotation.Value;

import javax.inject.Singleton;

@Singleton
public class Settings {

    // This will automatically be initialized with the value
    // of the MYAPP_APPLICATION_KEY OS environment variable
    // if this instance is being managed by Micronaut...
    @Value("${myapp.application.key")
    String applicationKey;
    
    public String getApplicationKey() {
        return applicationKey;
    }
}

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2016-10-17
    • 1970-01-01
    相关资源
    最近更新 更多