我需要生成一个名为:NEW_NAME_YYYY-MM-DD
的文件,其中YYYY-MM-DD
是当前日期。一切正常,除了当我的批处理尝试获取属性tmp.dir
时,它什么也没找到,而是调用目录null
。这是我正在使用的Writer类:
public class MyFileWriter extends FlatFileItemWriter {
@Value("${tmp.dir}")
private String tempDir;
public MyFileWriter(){
super();
setResource();
}
public void setResource() {
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD");
String stringDate = sdf.format(new Date());
String myPath = tempDir + "/NEW_NAME_" + stringDate + ".csv";
Resource outputFile = new FileSystemResource(myPath);
this.setResource(outputFile);
}
}
这是放置在applicationContext.xml
中的bean定义以及属性文件的property-placeholder:
<bean id="csvWriter" class="org.conters.writer.MyFileWriter" scope="step">
<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
<property name="delimiter" value=";" />
<property name="fieldExtractor">
<bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
<property name="names" value="ad,customer,total" />
</bean>
</property>
</bean>
</property>
<property name="encoding" value="${csv.encoding}" />
</bean>
关于为什么不注入属性的任何想法???至于在我的情况下称为batch.properties
的属性文件,它已在应用程序上下文中很好地声明了。