2011-04-07 9 views
0

내가 이해하는 한, 읽는 항목이 더 이상 없다면 리더는 'null'을 반환한다고 가정합니다. 이것이 독자를위한 계약이라면 프레임 워크가이 'null'을 인식하고 ReadListener의 afterRead를 호출하지 않을 것이라고 가정했습니다. 그러나 'null'매개 변수를 사용하여 'afterRead'를 호출하는 것 같습니다.스프링 배치 : ReadListener afterRead는 리더가 null을 반환하는 경우에도 호출됩니다.

스프링 배치 2.1.7을 사용하고 있습니다. 예상되는 동작인지 또는 여기에서 누락 된 것이 있는지 알려 주시기 바랍니다.

<batch:job id="job"> 
    <batch:listeners> 
     <batch:listener ref="jobExecutionListener"></batch:listener> 
    </batch:listeners> 
    <batch:step id="myStep"> 
     <batch:tasklet> 
      <batch:listeners> 
       <batch:listener ref="myReadListener" /> 
       <batch:listener ref="myTransformerListener" /> 
       <batch:listener ref="myWriteListener" /> 
      </batch:listeners> 
      <batch:chunk reader="myReader" processor="myTransformer" 
       writer="myWriter" commit-interval="1000" /> 
     </batch:tasklet> 
    </batch:step> 
</batch:job> 

답변

1

는 지금까지 내가 기억으로,이 올바른지 :

다음은 우리가 가지고있는 작업 구성입니다. Null은 끝 값이지만 읽기 값입니다.

결과적으로 AfterReading은 null로 실행되며 코드는이를 처리해야합니다.

관련 문제