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

时间:2019-07-15 15:42:08

标签: java properties spring-batch spring-batch-tasklet spring-batch-excel

我需要生成一个名为: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的属性文件,它已在应用程序上下文中很好地声明了

0 个答案:

没有答案