使用参数时,这个job.xml非常有用。
<beans>
<bean id="testFileItemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
<property name="resource" value="#{jobParameters['paramFileOuput']}"/>
<property name="shouldDeleteIfExists" value="true" />
<property name="lineAggregator">
...
</property>
</bean>
</beans>
但是,如果我不想使用作业参数,而是使用Spring配置文件......
<beans>
<bean id="testFileItemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
<property name="resource" ref="testFileOutput"/>
<property name="shouldDeleteIfExists" value="true" />
<property name="lineAggregator">
....
</property>
</bean>
<beans profile="dev">
<bean id="testFileOutput" class="java.lang.String">
<constructor-arg type="java.lang.String" value="file:c:/temp/testfile.txt" />
</bean>
</beans>
<beans profile="prod">
<bean id="testFileOutput" class="java.lang.String">
<constructor-arg type="java.lang.String" value="file:pathtoprod.txt" />
</bean>
</beans>
</beans>
这似乎有效。但这感觉不对。有没有办法使用配置文件在xml中设置参数?
这些方面的东西(这显然不起作用)
<beans profile="dev">
<setJobParameter key="testFileOuput" value="file:c:/temp/testfile.txt" />
</beans>
我可以使用任何版本的弹簧或弹簧。
答案 0 :(得分:0)
这个怎么样:
public FileOutput {
private String filename;
...
}
和
<beans profile="dev">
<bean id="testFileOutput" class="FileOutput " c:filename="file:pathtoprod.txt">
</beans>
不幸的是,你不能将p / c命名空间与java.lang.String一起使用,这就是你需要一个小帮助类的原因。无论如何,该解决方案会缩小您的context.xml几行,看起来更像您想要的解决方案。