맞춤 FactoryBean
은 어떨까요?
public class RepeatingListFactoryBean implements FactoryBean<Object> {
private final Object item;
private final int count;
public RepeatingListFactoryBean(Object item, int count) {
this.item = item;
this.count = count;
}
@Override
public Object getObject() throws Exception
{
final ArrayList<Object> list = new ArrayList<Object>(count);
for(int i = 0; i < count; ++i)
list.add(item);
return list;
}
@Override
public Class<?> getObjectType() {
return item.getClass();
}
@Override
public boolean isSingleton() {
return true;
}
}
당신은 다음과 같은 방법으로 (그러나 나는 그것을 테스트하지 않은)에서 사용할 수 있습니다 :
<bean id="listFactory" class="RepeatingListFactoryBean">
<constructor-arg value="1"/> <!-- item -->
<constructor-arg value="3"/> <!-- count -->
</bean>
<bean id="myBean" class-"com.foo.Xyz">
<property name="myList" ref="listFactory"/>
</bean>
주 수와 반복되어야하는 객체가 모두 선언적으로 구성 할 수있다.
SpEL에서 가능할 수도 있지만 이상한 요구 사항처럼 보입니다 – Bozho
가능하다면 좋지 않을까 생각합니다. 응용 프로그램의 논리를 Spring 설정에 넣는 것처럼 들리 겠지만 실제로는 응용 프로그램의 구성 요소를 함께 연결해야합니다. – Russell
사실 Runnable을 구현하는 클래스 C가 있습니다. 자체 의존성이 있으므로이 클래스의 인스턴스를 완전히 생성하려면 스프링을 사용하고 있습니다. 이제 스레드 풀 ('java.util.concurrent.ScheduledThreadPoolExecutor ')에서 그러한 스레드의 'X'를 스케줄하고 싶습니다. 지금은 for 루프 X 시간에'appContext.getBean ('c')'를 사용하고 그것을 스케줄링하고 있지만 앱 컨텍스트에 대한 액세스가 필요합니다. – RandomQuestion