读取properties 然后动态生成lineTokenizer bean.
GenericApplicationContext context = new GenericApplicationContext();
PropertySourcesPlaceholderConfigurer pph = new PropertySourcesPlaceholderConfigurer();
pph.setLocation(new ClassPathResource("/batch.properties"));
context.addBeanFactoryPostProcessor(pph);
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context);
reader.loadBeanDefinitions("launch-context.xml");
List<String> names = new ArrayList<String>();
names.add("id");
names.add("name");
names.add("age");
names.add("score");
names.add("x");
names.add("y");
GenericBeanDefinition def = new GenericBeanDefinition();
MutablePropertyValues vals = new MutablePropertyValues();
def.setBeanClassName("org.springframework.batch.item.file.transform.DelimitedLineTokenizer");
vals.add("delimiter", new TypedStringValue("^"));
vals.add("names", names);
def. setPropertyValues(vals);
context. registerBeanDefinition("lineTokenizer", def);
context.refresh();
JobLauncher launcher = (JobLauncher) context.getBean("jobLauncher");
ImsParisStateUtil dataMartState = (ImsParisStateUtil) context
.getBean("imsParisState");
GenericApplicationContext context = new GenericApplicationContext();
PropertySourcesPlaceholderConfigurer pph = new PropertySourcesPlaceholderConfigurer();
pph.setLocation(new ClassPathResource("/batch.properties"));
context.addBeanFactoryPostProcessor(pph);
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context);
reader.loadBeanDefinitions("launch-context.xml");
List<String> names = new ArrayList<String>();
names.add("id");
names.add("name");
names.add("age");
names.add("score");
names.add("x");
names.add("y");
GenericBeanDefinition def = new GenericBeanDefinition();
MutablePropertyValues vals = new MutablePropertyValues();
def.setBeanClassName("org.springframework.batch.item.file.transform.DelimitedLineTokenizer");
vals.add("delimiter", new TypedStringValue("^"));
vals.add("names", names);
def. setPropertyValues(vals);
context. registerBeanDefinition("lineTokenizer", def);
context.refresh();
JobLauncher launcher = (JobLauncher) context.getBean("jobLauncher");
ImsParisStateUtil dataMartState = (ImsParisStateUtil) context
.getBean("imsParisState");
Job job = (Job) context.getBean("imsParisJob");