我是Spring批处理的新人,所以我在这里提出一些基本的建议。
在弹出作业/步骤运行时,在内存(或bean)中加载配置文件并使用其内容的最佳方法是什么?
我不确定,但根据谷歌搜索,我发现了下面的情景,即使我不太明白为什么我应该定义一个作家,即使我不需要它:
所以对于第1步:
<bean id="inputFile" class="org.springframework.core.io.FileSystemResource" scope="step">
<constructor-arg value="path_config_file"/>
</bean>
<bean id="readerConfigFile" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<property name="resource" ref="inputFile"/>
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="names" value="field,value"/>
<property name="delimiter" value="="/>
</bean>
</property>
<property name="fieldSetMapper">
<bean class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="configProperties"/>
</bean>
</property>
</bean>
</property>
</bean>
<bean id="outputConfig" class="outputConfig"></bean>
<bean id="configProperties" class="configProperties" scope="prototype"/>
所以我的问题是:
任何建议都非常受欢迎
答案 0 :(得分:2)
我对你的问题感到有点困惑,因为我认为你只需要使用PropertiesFactoryBean
在弹簧上下文中加载属性文件:
<bean id="config" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location">
<value>file:path_config_file</value>
</property>
</bean>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="propertiesArray">
<list>
<ref bean="config"/>
</list>
</property>
</bean>
您可以使用$ {}占位符来引用属性值;但这种解决方案与弹簧批次无关;我不需要它!
关于您的问题:
BeanWrapperFieldSetMapper
)PropertiesFactoryBean
)。ItemProcessor
读取的对象T
转换为由ItemReader<T>
写入的S类对象,则会请求ItemWriter<S>
。所以不,你不需要ItemProcessor
。我希望我很清楚,英语不是我的母语