Anish,
Spring factory-bean/factory-method would be one of the things you can try .
Sample Code :
Code:
public class ReaderFactory implements ApplicationContextAware, FactoryBean {
protected ApplicationContext applicationContext;
protected String reader;
public void setReader( String reader)
{
this.reader = reader;
}
public Class getObjectType() {
return AbstractItemCountingItemStreamItemReader.class;
}
public boolean isSingleton() {
return false;
}
public Object getObject() {
if (reader != null) {
System.out.println("READER"+reader);
Object reader1 = applicationContext.getBean(reader);
return reader1;
}
else return null;
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.applicationContext = applicationContext;
}
}
XML CONFIG FILE:
Code:
<bean id="EDIJob" parent="simpleJob" >
<property name="steps" >
<bean id="step1" parent="simpleStep" >
<property name="streams" >
<list>
</list>
</property>
<property name="itemReader" ref="reader" />
<property name="itemWriter" ref="writer" />
</bean>
</property>
</bean>
<bean id="reader" class="com.abcbs.EDI837.common.ReaderFactory" >
<property name="reader" value="#{jobParameters['reader.name']}"/>
</bean>