私はスプリングブートアプリケーションで@Autowired
を使用していくつかのプロパティを初期化します。 私はどのように私はプリミティブなデータ型を初期化することができますが、私はオブジェクトを初期化する方法を知りません。application.propertiesを使用してオブジェクトを初期化する
私Component
です:
@Component
@ConfigurationProperties(prefix = "bitmovin.bitmovin")
public class BitmovinConfig {
private S3InputConfig S3InputConfig = new S3InputConfig();
private int threadPoolSize;
private ArrayList<String> testFiles;
public BitmovinConfig() {
}
public S3InputConfig getS3InputConfig() {
return S3InputConfig;
}
public void setS3InputConfig(S3InputConfig s3InputConfig) {
S3InputConfig = s3InputConfig;
}
public int getThreadPoolSize() {
return threadPoolSize;
}
public void setThreadPoolSize(int threadPoolSize) {
this.threadPoolSize = threadPoolSize;
}
public ArrayList<String> getTestFiles() {
return testFiles;
}
public void setTestFiles(ArrayList<String> testFiles) {
this.testFiles = testFiles;
}
}
そして、それは私のapplication.properties
ファイルです:
bitmovin.bitmovin.threadPoolSize = 30
bitmovin.bitmovin.S3InputConfig = ??
bitmovin.bitmovin.testFiles= ??
私はapplication.properties
にオブジェクトまたはリストを初期化するにはどうすればよいですか?
UPDATE
私は初期化したい、自分自身を作成していないオブジェクト、:リストについて
public class S3OutputConfig {
@Expose
public String name;
@Expose
public S3Region region;
@Expose
public String accessKey;
@Expose
public String secretKey;
@Expose
public String bucket;
@Expose
public String prefix;
@Expose
public boolean makePublic;
}
あなたの提案は非常にうまく動作しますが、私は 'bitmovin.bitmovin.s3-input-config.bucket = awesome-video'を使ってオブジェクトプロパティを設定してもまだnullです。 – TheDoctor
質問をオブジェクトのクラスで更新しました。 – TheDoctor
完全なオブジェクトを初期化することはできません。この例で行ったように、さまざまなフィールドを初期化する必要があります。最後に '.name'があることに注目してください。私はそれらの '@ Expose'が何であるか分かりませんが、バインディングのためにgetter/setterが必要です。 –