我在我的弹簧启动应用程序中使用@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'来设置对象属性时,它仍然为空。 – TheDoctor
我用对象的类更新了我的问题。 – TheDoctor
您无法初始化完整的对象,您需要按照我在示例中所做的来初始化各个字段。最后注意'.name'。我不知道那些'@ Expose'是什么,但你需要getter/setter来让绑定工作。 –