산타가 목록을 가지고 있습니다. 그는 히트리스트에있는 모든 어린이들에게 "선물"을 만들어주고 싶습니다. (우리는 그들이 모두 좋다고 생각하고 있습니다.) 썰매에 모든 것을 적재하십시오. 그는 봄과 함께 할 수 있습니까?Spring FactoryBean - "객체 생성"목록을 반복합니다.
나는 FactoryBean을 구현하고 주어진 파일의 줄을 나타내는 문자열 목록을 반환하는 간단한 FileListFactory를 작성했다. 지금 당장 그 값을 설정하십시오. <리스트의 문제를 해결하면이 팩터 리의 출력을 대신 연결할 수 있다고 가정합니다.
무엇이 내가 을 원한다면은 "foo"개체의 목록입니다. foo 객체는 일부 bean의 singleton이 아닌 인스턴스입니다 (추상 bean 정의가있을 가능성이 있음). 생성 된 각 foo 객체는 목록 항목 중 하나를 속성으로 가져옵니다.
한 레벨 더 올리려면 해당 속성은 "막대"개체입니다. 문자열에서 "bar"객체를 만들기위한 속성 편집기를 이미 만들었습니다. 따라서 문자열 목록을 반복하는 것은 인스턴스 별 속성을 설정할 때 속성 편집기 인프라를 사용해야합니다.
리스트 팩토리 반복자 빈 (bean) 또는 이와 같은 것이 있어야하는 것처럼 보입니다. 문제는 "list"와 같은 용어가 너무 일반적이기 때문에이 문제에 대한 예제 솔루션을 찾기 위해 수행하는 모든 검색이 실패하는 것 같습니다.
당신은 문제 문이 올바른있어,하지만 당신이 그렇게 어떻게 "문자열의 각각에 대해 새하는 BeanDefinition을 만들어?" – nsayer
새 ChildBeanDefinition ("myAbstractParentBean") BeanDefinition, BeanDefinitionRegistry 및 구현을 참조하십시오. – lexicore
아, 알겠습니다. BFPP는 목록을 속성으로 사용하여 코드에서이 작업을 수행합니다. 나는이 문제를 해결하기 위해 유사한 것을하고 있지만 보통 콩으로 감았습니다. 특수한 "FooListCreator"에 연결된 막대 목록 개체가 있습니다. 그 거시기는 BeanFactoryAware이고 목록의 각 "바"에 대해 "foo"의 인스턴스를 묻는 다음 바 속성을 프로그래밍 방식으로 설정합니다. 나는 더 많은 것들이 실제 자바 코드없이 가능하다는 것을 기대했다. 즉, 애플리케이션 컨텍스트 xml 파일 자체에있다. – nsayer