2013-12-08 2 views
0

Spring Batch에서, ItemReader 또는 ItemProcessor가 아이템 오브젝트를 리턴 한 후, 프레임 워크는 해당 아이템을 ArrayList에 넣어 ItemWriter에 전달한다.Spring Batch에 의해 생성 된 아이템리스트를위한 Bean ID

ItemProcessor에서 Item의 ArrayList에 액세스해야합니다. 필요한 핵심 기능은 ItemReader/ItemProcessor가 청크를 처리하는 동안 Arraylist에 액세스하는 것입니다.

내 생각은 저 아래의 호출하게하는 것을 허용 할 ApplicationContextAware ItemProcessor을 사용하는 것이었다 :

ArrayList<? extends Item> items = context.getBean("items", ArrayList.class) 

을하지만 빈 항목을 명명하지 않습니다.

내가 어떻게 그 ArrayList 또는 Bean의 이름에 액세스하여 거기에 강제로 넣을 수 있는지 알고 있습니까?

+1

이 요구 사항의 목적은 무엇입니까? 항목 목록으로 무엇을하려고합니까? –

답변

2

항목이 에 ItemWriter
예상 서명 전달되기 전에 @BeforeWrite
이 방법을 표시합니다

호출 할 (2.0 스프링 배치부터 사용 가능) 다음 스프링 배치 주석을 사용하여 무효 beforeWrite (목록 항목) 귀하의 작가에

방법 당신의 쓰기 방법 전에 모든 덩어리에 대해 실행됩니다이 주석으로 표시.

+0

이 작업은 ItemProcessor에서 작동합니까? 요구 사항은 ItemProcessor에있는 Item의 ArrayList에 액세스하는 것입니다. – cyotee

+0

동일한 배열 목록입니다. 그러나 ItemProcessor 수준에서이 값을 사용하는 것이 더 좋으면 @ BeforeProcess/@ AfterProcess 하지만 한 항목 만 액세스 할 수 있습니다 –

+0

그게 바로 ItemProcessor에서 ArrayList를 가져와야합니다. – cyotee