Java 如何使用dropwizard guice D.I在yml中获取配置值?

Java 如何使用dropwizard guice D.I在yml中获取配置值?,java,guice,dropwizard,Java,Guice,Dropwizard,我正在使用下面的config.yml # AWS DynamoDB settings dynamoDB: # Access key aws_access_key_id: "access-key" #Secret Key aws_secret_access_key: "secret-key" aws_dynamodb_region: EU_WEST_1 在我的DynamoDBConfig类中读取上述配置值 public class DynamoDBConfig {

我正在使用下面的
config.yml

# AWS DynamoDB settings
dynamoDB:
  # Access key
  aws_access_key_id: "access-key"
  #Secret Key
  aws_secret_access_key: "secret-key"
  aws_dynamodb_region: EU_WEST_1 
在我的
DynamoDBConfig
类中读取上述配置值

public class DynamoDBConfig {
    public DynamoDBConfig() {
    }

    @JsonProperty("aws_access_key_id")
    public String accessKey;

    @JsonProperty("aws_secret_access_key")
    public String secretKey;

    @JsonProperty("aws_dynamodb_region")
    public String region;

    // getters and setters
}
最后是
ApplicationConfig
类,其中包括
DynamoDB
config

public class ReadApiConfiguration extends Configuration {
    @NotNull
    private DynamoDBConfig dynamoDBConfig = new DynamoDBConfig();

    @JsonProperty("dynamoDB")
    public DynamoDBConfig getDynamoDBConfig() {
        return dynamoDBConfig;
    }

    @JsonProperty("dynamoDB")
    public void setDynamoDBConfig(DynamoDBConfig dynamoDBConfig) {
        this.dynamoDBConfig = dynamoDBConfig;
    }
}
现在我想在我的
AWSclient.java
类中读取
aws\u access\u key
aws\u secret\u key
值来创建
AWSclient

BasicAWSCredentials awsCreds = new BasicAWSCredentials("access_key_id", "secret_key_id");
我的问题是,如何在
AWSClient
类中读取/注入配置值。我正在为DI使用
dropwizard guice
模块。无法理解如何将在DW启动时创建的
配置
对象绑定到其类


注意:->我已经讨论过这个问题,但它并没有解决我的问题,因为它没有将guice用作DI模块。

通常,您可以将配置对象注入类字段或构造函数,如:

public class AWSclient {

  @Inject
  public AWSclient(ReadApiConfiguration conf) {
     initConnection(conf.getDynamoDBConfig().getSecretKey(), ...)
  }

}

另外,使用@Singleton注释注释ReadApiConfiguration类。

但是我仍然需要从我的应用程序类创建AWSClient,仅在
运行(最终ReadApiConfiguration配置,最终环境)
方法具有config参数的地方。如何从应用程序的其他部分创建?您不必在那里创建它。将您的AWSClient注射到您需要的任何地方。Guice应该注意创建它的实例并向构造函数提供一个配置对象。我需要在Guice包中的某个地方绑定AWSClient,对吗?我仍然不明白guice将如何创建它的实例。你们能分享一段和guice相关的代码吗?或者它是由TB完成的吗?