我在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;
}
}
现在,我想在aws_access_key
课程中阅读aws_secret_key
和AWSclient.java
个值,以创建awsclient
BasicAWSCredentials awsCreds = new BasicAWSCredentials("access_key_id", "secret_key_id");
我的问题是,我在AWSClient
课程中如何阅读/注入配置值。我正在使用dropwizard-guice
模块进行DI。并且无法弄清楚,如何将在DW启动时创建的configuration
对象绑定到其类。
P.S。 : - >我已经完成了这个SO post,但它并没有解决我的问题,因为它没有使用guice作为DI模块。
答案 0 :(得分:0)
通常,您可以将配置对象注入类字段或构造函数,例如:
public class AWSclient {
@Inject
public AWSclient(ReadApiConfiguration conf) {
initConnection(conf.getDynamoDBConfig().getSecretKey(), ...)
}
}
此外,使用@Singleton注释注释您的ReadApiConfiguration类。