私は私のDynamoDBConfig
クラスで上記設定値を読み取るためにconfig.yml
ymlの設定値を取得する方法 - dropwizard guice D.Iを使用していますか?
# 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
とクラス以下の下に使用しています。 DynamoDB
設定が含ま
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
クラス。
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
BasicAWSCredentials awsCreds = new BasicAWSCredentials("access_key_id", "secret_key_id");
を作成するために、私のAWSclient.java
クラスでaws_access_key
とaws_secret_key
値を読みたいと思う私の問題は、私は/私のAWSClient
クラスで設定値を、注入読んでどのように、あります。 DI用にdropwizard-guice
モジュールを使用しています。 DW起動時に作成されたconfiguration
オブジェクトをそのクラスにバインドするにはどうしたらいいですか?
P.S. : - >私はこのSO postを通過しましたが、DIモジュールとしてguiceを使用しないので、私の問題は解決しません。 @Singletonアノテーションで、あなたのReadApiConfigurationクラスに注釈を付け、さらに
public class AWSclient {
@Inject
public AWSclient(ReadApiConfiguration conf) {
initConnection(conf.getDynamoDBConfig().getSecretKey(), ...)
}
}
:
しかし、私のアプリケーションクラスからAWSClientを作成する必要があります。実行(最終的なReadApiConfiguration設定、 最終環境環境)メソッドにはconfigパラメータがあります。アプリケーションの他の部分からどのように作成できますか? – AKJ
そこに作成する必要はありません。必要な場所にAWSClientを注入します。 Guiceはインスタンスを作成し、コンストラクタに設定オブジェクトを提供することに注意しなければなりません。 – Vyacheslav
私はguice-bundleのどこかにAWSClientをバインドする必要がありますか?私はまだguiceがインスタンスを作成する方法を理解していません。あなたがguiceに関連していたり、それが完了していれば、コードの一部を共有できますか? – AKJ