2016-10-08 2 views
-1

나는 여기 내 YAML과 자바 클래스봄 부팅 YAML 객체 매핑

--- 
tables: 

    trs_fact_txn_detail: 
    tablespecificparams: 
     expiredinterval: "90d" 
     fields: "abc" 

    trs_fact_txn_detail_et: 
    tablespecificparams: 
     expiredinterval: "56d" 
     fields: "abcdef" 



@Configuration 
@ConfigurationProperties(locations = {"${table.config.location}"}) 
public class RedshiftTableConfig { 

    private Map<String, tablespecificparams> tables; 

    public Map<String, tablespecificparams> getTables() { 
     return tables; 
    } 

    public void setTables(Map<String, tablespecificparams> tables) { 
     this.tables = tables; 
    } 

    public static final class tablespecificparams { 

     String expiredinterval; 
     String fields; 

     public String getExpiredinterval() { 
      return expiredinterval; 
     } 
     public void setExpiredinterval(String expiredinterval) { 
      this.expiredinterval = expiredinterval; 
     } 
     public String getFields() { 
      return fields; 
     } 
     public void setFields(String fields) { 
      this.fields = fields; 
     } 

    } 
} 

내가 매핑 된 두 테이블을 얻고있다, 자바 클래스 내 봄 부팅에 YAML을지도하는 것을 시도하고있다. 어쨌든 tablespecificparameters의 값은 null 인 것 같습니다. 나는 잠시 동안 디버깅을 해왔다. 여기에 테이블 지정 프로그램을 매핑하는 방법은 무엇입니까 ?

+0

@Anthon. 나는 의도 된 질문이 여기서 분명하다고 생각한다. 왜 그것이 -1로 투표되었는지 확실하지 않습니다. 어쨌든 명확하게 더 명확하게 질문을 추가했습니다 –

+0

감사합니다. 왜 하나의 게시물이 다운 (또는 위로) 투표를하고 다른 사람들이 투표하지 않는가에 대한 진정한 이유는 종종 불분명합니다. 특히 "유용하지 않다"고 투표하는 것은 매우 주관적인 IMO입니다. 사람들은 투표가 한 손에 좋을 때 (복수 투표의 대부분을 막을 때) 논평 할 필요가 없지만 다른 한편으로는 좌절 할 수 있습니다. 문제가 해결 될 수 있기를 바랍니다. 나는 YAML을 알고 있지만이 천년기가 시작된 이래로 Java를 사용하지 않았기 때문에 여러분을 도울 수는 없습니다. – Anthon

답변

0

설정 파일은 다음과 같아야합니다.

@Configuration 
@ConfigurationProperties(locations = {"${table.config.location}",prefix = "tables"}) 
public class RedshiftTableConfig { 

private Map<String, tablespecificparams> trs_fact_txn_detail; 

public Map<String, tablespecificparams> getTrs_fact_txn_detail() { 
    return trs_fact_txn_detail; 
} 

public void setTrs_fact_txn_detail(Map<String, tablespecificparams> trs_fact_txn_detail) { 
    this.trs_fact_txn_detail = trs_fact_txn_detail; 
} 

public static final class tablespecificparams { 

    String expiredinterval; 
    String fields; 

    public String getExpiredinterval() { 
     return expiredinterval; 
    } 
    public void setExpiredinterval(String expiredinterval) { 
     this.expiredinterval = expiredinterval; 
    } 
    public String getFields() { 
     return fields; 
    } 
    public void setFields(String fields) { 
     this.fields = fields; 
    } 
    } 
} 

yaml 파일에는 적절한 간격의 항목이 있어야합니다.

tables: 

trs_fact_txn_detail: 
    tablespecificparams: 
     expiredinterval: "90d" 
     fields: "abc" 

trs_fact_txn_detail_et: 
     tablespecificparams: 
     expiredinterval: "56d" 
     fields: "abcdef" 
+0

내 yaml과 일치하지 않을 것입니다. trs_fact_txn_detail, trs_fact_txn_detail_et 선언 된 여러 테이블이 있고 여기에 코드를 한 테이블에 매핑합니다. –

0

yaml에서 문자열 "bankspecificparams"를 제거하여 수정했습니다.

--- 
tables: 

    trs_fact_txn_detail: 
     expiredinterval: "90d" 
     fields: "abc" 

    trs_fact_txn_detail_et: 
     expiredinterval: "56d" 
     fields: "abcdef"