Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Spring批处理中的readMultiFileJob获取文件名_Spring_Spring Data_Spring Integration_Spring Batch - Fatal编程技术网

从Spring批处理中的readMultiFileJob获取文件名

从Spring批处理中的readMultiFileJob获取文件名,spring,spring-data,spring-integration,spring-batch,Spring,Spring Data,Spring Integration,Spring Batch,下面是我的Spring批处理配置文件,我正在读取多个文件(xml、csv等),这些文件以时间戳作为后缀动态生成,我可以读取文件的数据和处理,现在的问题是, 我想知道文件名。 如何在处理作业时获取文件名 <import resource="../config/context.xml" /> <bean id="domain" class="com.di.pos.Domain" /> <job id="readMultiFileJob" xmlns="h

下面是我的Spring批处理配置文件,我正在读取多个文件(xml、csv等),这些文件以时间戳作为后缀动态生成,我可以读取文件的数据和处理,
现在的问题是, 我想知道文件名。 如何在处理作业时获取文件名

<import resource="../config/context.xml" />
    <bean id="domain" class="com.di.pos.Domain" />
    <job id="readMultiFileJob" xmlns="http://www.springframework.org/schema/batch">
        <step id="step1">
            <tasklet>
                <chunk reader="multiResourceReader" writer="flatFileItemWriter"
                    commit-interval="1" />
            </tasklet>
        </step>
    </job>
    <bean id="multiResourceReader"
        class=" org.springframework.batch.item.file.MultiResourceItemReader">
        <property name="resources" value="file:csv/inputs/dipos-*.csv" />
        <property name="delegate" ref="flatFileItemReader" />
    </bean>
    <bean id="flatFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
        <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="id, name" />
                    </bean>
                </property>
                <property name="fieldSetMapper">
                    <bean
                        class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
                        <property name="prototypeBeanName" value="domain" />
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

  • 创建扩展LineMapper的自定义映射器
  • 重写mapLine()方法
  • 公共文件数据映射行(字符串行、整数行号)引发异常{ FileData FileData=newfiledata()

    可能重复的
            Resource currentResource = delegator.getCurrentResource();
            String[] fileName = currentResource.getFilename().split("/");
    
            //Use this to access file path
            URI fileUri = currentResource.getURI();
            return fileData;
        }