#Reports
reports:
PnLReport:
reportId: 10
path: \\\\pathto\\PnLreport\\
BalanceSheetReport:
reportId: 11
path: \\\\pathto\\balancesheet\\
schedule-10:
description: Deliver pnl reports
report: 10
format: PDF, XLS
我在application.yml
应用程序的Spring Boot
文件中定义了上述属性。
如何为每种报告类型将repordId
和path
属性映射到enum
。例如:
public enum ReportType{
PNL(...)
BALANCE(...);
private final String reportId;
private final String path;
private ReportType(String reportId, String path) {
this.identifier = identifier;
}
接下来,我想在report: 10
属性下的schedule-10
与reportId
之间进行映射,以便在FileService
类中导出路径,以便我可以查看文件是否存在于路径中。我该怎么做这个映射?
这是我能够考虑我的要求的唯一方法,有没有更好的方法呢?
答案 0 :(得分:0)
您可以使用@Value注释从配置文件中读取属性,如下所示:
CREATE external table spectrum.LINEITEM_PART_PARQ (
L_ORDERKEY BIGINT,
L_PARTKEY BIGINT,
L_SUPPKEY BIGINT,
L_LINENUMBER INT,
L_QUANTITY DECIMAL(12,2),
L_EXTENDEDPRICE DECIMAL(12,2),
L_DISCOUNT DECIMAL(12,2),
L_TAX DECIMAL(12,2),
L_RETURNFLAG VARCHAR(128),
L_LINESTATUS VARCHAR(128),
L_COMMITDATE VARCHAR(128),
L_RECEIPTDATE VARCHAR(128),
L_SHIPINSTRUCT VARCHAR(128),
L_SHIPMODE VARCHAR(128),
L_COMMENT VARCHAR(128))
partitioned by (L_SHIPDATE VARCHAR(128))
stored as PARQUET
location 's3://<your-bucket>/<xyz>/lineitem_partition/
答案 1 :(得分:0)
我不确定我是否会建议使用枚举,因为您正在寻找的更像是可配置的属性实例。也许考虑使用一个简单的类来读取它的两个实例?
public class ReportType {
private Integer reportId;
private String path;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public void getReportId() {
return reportId;
}
public Integer setReportId(Integer reportId) {
this.reportId = reportId;
}
}
@Component
@ConfigurationProperties(prefix = "reports")
public class ReportTypes {
public ReportType PlnReport;
public ReportType BalanceSheetReport;
}