2013-02-12 3 views
0

DataBinder를 사용하여 루프에 몇 개의 객체를 생성하고 있습니다. 매번 DataBinder 객체를 만드는 대신 DataBinder 객체를 재사용 할 수 있는지 궁금합니다.스프링 데이터 바인더 재사용

가능합니까?

지금 내가 가진 :

while (condition) { 
    obj = new MyObj(); 
    DataBinder db = new DataBinder(obj,"my obj"); 
    db.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat(dateFormatParam), false)); 
    // set up binder with some editors etc. 
    objectvalues = getValues(); 
    MutablePropertyValues mpv = new MutablePropertyValues(); 
    for (int i=0;i<fieldNames.length;i++){ 
     mpv.add(StringUtils.trim(fieldNames[i]), objectvalues[i]); 
    } 
    db.bind(mpv); 
    // do something with obj... 
} 
내가 가지고 싶은

(이 상상력 만 ...) :

obj = new MyObj(); 
DataBinder db = new DataBinder(obj,"my obj"); 
db.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat(dateFormatParam), false)); 
// set up binder with some editors etc. 
MutablePropertyValues mpv = new MutablePropertyValues(); 
for (int i=0;i<fieldNames.length;i++){ 
    mpv.add(StringUtils.trim(fieldNames[i]), "empty value"); 
} 
while (condition) { 
    objectvalues = getValues(); 
    for (int i=0;i<fieldNames.length;i++){ 
     mpv.setPropertyValueAt(objectvalues[i], i); 
    } 
    db.bind(mpv); 
    objCopy = obj.clone(); 
    // do something with objCopy... 
} 

처럼 그것을 할 수있는 안전한 방법인가, 기억과 시간을 낭비하지 않겠습니까?

답변

1

아니요, DataBinder의 대상 객체가 최종 객체입니다. 다른 객체에 바인딩하려는 경우 새로 객체를 만들도록 DataBinder을 작성해야합니다.