Java 在Spring批处理中将属性注入FlatFileItemWriter

Java 在Spring批处理中将属性注入FlatFileItemWriter,java,properties,spring-batch,spring-batch-tasklet,spring-batch-excel,Java,Properties,Spring Batch,Spring Batch Tasklet,Spring Batch Excel,我需要生成一个名为:NEW_NAME_YYYY-MM-DD的文件,其中yyy-MM-DD是当前日期。除了当我的批处理试图获取属性tmp.dir时,它什么也找不到,而是调用目录null。这是我正在使用的Writer类: public class MyFileWriter extends FlatFileItemWriter { @Value("${tmp.dir}") private String tempDir; public MyFileWriter(){ s

我需要生成一个名为:
NEW_NAME_YYYY-MM-DD
的文件,其中
yyy-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定义以及属性文件的属性占位符:

<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
的属性文件,在我的例子中它在applicationcontext中声明得很好

tmp.dir
batch.properties
文件中定义的,还是您正在尝试注入Java系统属性
Java.io.tmpdir
?我看到您在
setResource
方法中使用
temporaryDir
,而变量名为
tempDir
。这是故意的还是打字错误?既然您在XML配置中定义了bean,那么在
MyFileWriter
类中为
tempDir
添加一个setter并在XML中添加
怎么样?在我看来,这比混合使用两种配置(注释和XML)更为一致。是在
批处理.properties
文件中定义了
tmp.dir
,还是尝试注入Java系统属性
Java.io.tmpdir
?我看到您在
setResource
方法中使用
temporaryDir
,而变量名为
tempDir
。这是故意的还是打字错误?既然您在XML配置中定义了bean,那么在
MyFileWriter
类中为
tempDir
添加一个setter并在XML中添加
怎么样?在我看来,这比混合使用两种配置(注释和XML)更为一致。