`
frankensteinlin
  • 浏览: 56415 次
  • 性别: Icon_minigender_1
  • 来自: ShangHai
社区版块
存档分类
最新评论

spring 之FlatFileItemReader

阅读更多
FlatFileItemReader 的主要作用就是读入一个文件,返回一组bean,他要配置的最主要的组件:
【1】 resource 文件在什么地方
【2】 lineMapper 即 这个组件将文件的每一行组装成一个bean。

其中lineMapper 又是由  lineTokenizer 和 fieldSetMapper
【1】 lineTokenizer 作用是将文件的每一行分解成一个FieldSet
【2】 fieldSetMapper 又以 FieldSet 组成一个bean 或者一组记录。

例子
     <bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader">
         <property name="resource" value="classpath:sampleSource.txt" />
         <property name="lineMapper" >
                   <bean id="defaultLineMapper" class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
                       <property name="lineTokenizer">
                           <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                              <property name="names">
                              <list>
                                 <value>name</value>
                                 <value>age</value>
                              </list>
                              </property>
                           </bean>
                       </property>
                       <property name="fieldSetMapper">
                       	   <bean  class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
	                             <property name="prototypeBeanName" value="testbean" />
	                       </bean>
                       </property>
                        
                   </bean>      
         </property>
     </bean>



lineTokenizer 产生怎样的FieldSet 是可以在 lineTokenizer 中定义的,不过是通过设置fieldSetFactory这个property来定义的。
 <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                              <property name="names">
                              <list>
                                 <value>name</value>
                                 <value>age</value>
                              </list>
                              </property>

                                <property name="fieldSetFactory" value="your defined factory"/>
                           </bean>



问题:
【1】类型转换时放在哪个组件中完成的?
    如果你看了FieldSet 的接口定义,你肯定认为类型转换是在filedSet 中进行的。其实不然。如果你仅仅设置了fieldSetFactory的DefaultFieldSetFactory并且使用了BeanWrapperFieldSetMapper的话你就上当了。
    实际上 BeanWrapperFieldSetMapper 的类型转换时依靠databinder的功能实现的。也就是说是依赖于spring内部定义的propertyEditor的。不过这个影响是全局的。
    可以配置如下
 <bean id="customEditorConfigurer"  class="org.springframework.beans.factory.config.CustomEditorConfigurer">
  <property name="customEditors">
     <map>
       <entry key="java.util.Date" >
         <bean class="com.huang.DatePropertyEditor"></bean>
       </entry>
     </map>
  </property>
 </bean>


当然也可以自己写 FieldSetMapper 利用filedSet的类型转换功能。

另外关于javabean的属性编辑器的内容下面有个很好的参考。
http://book.csdn.net/bookfiles/466/10046616417.shtml

   
0
0
分享到:
评论

相关推荐

    Spring Batch读取txt文件并写入数据库的方法教程

    Spring Batch 是一个强大的批处理框架,它为处理大量数据提供了灵活和可扩展的解决方案。在本教程中,我们将探讨如何使用 Spring Batch 读取文本(txt)文件,并将读取到的数据处理后写入数据库。 首先,我们需要...

    Spring Batch学习demo项目源码

    3. **读取器(Reader)**:Spring Batch 提供了多种数据读取器,如`FlatFileItemReader`用于读取文本文件,`JdbcPagingItemReader`用于从数据库分页读取数据。在XML配置中,它们通常作为步骤的一部分配置。 4. **...

    SpringBatch学习入门

    public FlatFileItemReader&lt;Account&gt; itemReader() { // 配置CSV文件的读取 } @Bean public ItemProcessor, Account&gt; processor() { // 定义数据处理逻辑 } @Bean public JdbcBatchItemWriter&lt;Account&gt; ...

    pro spring batch 源码

    - **FlatFileItemReader**:用于读取文本文件,如 CSV 或固定宽度格式。 - **JdbcPagingItemReader**:分页读取数据库中的数据。 - **JdbcCursorItemReader**:使用数据库游标进行数据读取。 3. **处理器...

    Spring batch Read csv project

    &lt;bean id="csvItemReader" class="org.springframework.batch.item.file.FlatFileItemReader"&gt; &lt;bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper"&gt; &lt;bean class="org.spring...

    springboot整合spring batch

    - 使用`FlatFileItemReader`作为读者来读取CSV文件。这个组件可以配置为逐行读取文件,处理每一行数据。 - `FieldSetMapper`用于将CSV文件中的字段映射到业务对象(领域模型)。 - 数据分批处理可以通过`Step`的`...

    spring batch指南

    1. **读取文件**:Spring Batch提供多种文件读取器,如FlatFileItemReader,支持CSV、XML等格式。 2. **处理数据库**:JdbcPagingItemReader和JdbcCursorItemReader用于数据库分页和游标读取。 3. **数据库写入**:...

    spring job 的配置

    &lt;bean id="itemReader" class="org.springframework.batch.item.file.FlatFileItemReader"&gt; &lt;!-- 配置读取文件的相关属性 --&gt; &lt;!-- 配置处理器的相关逻辑 --&gt; &lt;bean id="itemWriter" class="org.spring...

    Spring-batch Demo.zip

    Spring Batch 提供了多种类型的读取器和写入器,如FlatFileItemReader和FlatFileItemWriter用于处理文本文件,JdbcPagingItemReader和JdbcBatchItemWriter用于数据库操作。此外,还可以自定义处理器和存储器来适应...

    SPRINGBATCH全家桶

    例如,FlatFileItemReader用于读取文本文件,JdbcPagingItemReader用于分页读取数据库数据。 2. **事务管理**:基于Spring的事务管理能力,SpringBatch能确保批处理过程中的数据一致性。它支持本地事务和分布式事务...

    Spring.Batch.in.Action.pdf

    - **不同类型的Reader**:探讨各种Reader组件的特点和适用场景,如FlatFileItemReader、JdbcCursorItemReader等。 - **配置示例**:给出具体的配置代码示例,帮助读者理解和应用。 **第六章:数据写入** - **...

    Spring Batch Example

    3. **数据源和数据写入**:在读取和写入数据时,Spring Batch提供了多种适配器,如FlatFileItemReader和FlatFileItemWriter用于处理文本文件,JdbcPagingItemReader和JdbcBatchItemWriter则用于数据库操作。...

    springBatch 组件学习教程源码

    例如,FlatFileItemReader 用于读取固定格式的文本文件。 4. **ItemProcessor**:这个组件对 ItemReader 读取到的数据进行转换或处理。你可以定义自定义的逻辑来改变数据,或者执行业务规则。 5. **ItemWriter**:...

    spring-batch

    **Spring Batch** 是一个构建于 **Spring Framework** 之上的强大批处理框架,它主要用于处理大量的数据记录,如日志文件、数据库导出等场景。该框架提供了一种灵活且可扩展的方式来定义批处理作业,使得开发人员...

    spring batch 源码

    - **PagingItemReader** 和 **FlatFileItemReader**:常见的 ItemReader 实现,分别用于分页查询和读取文本文件。 - **ItemProcessor**:处理 Item 数据,可以进行转换、过滤等操作。 - **ItemWriter**:将处理后...

    spring-batch-reference.rar_SpringBatch英文读物pdf_batch

    Spring Batch 提供了多种预定义的读取器,如FlatFileItemReader用于读取文本文件,JdbcPagingItemReader用于分页查询数据库。 4. **处理器(Item Processor)**:接收读取的数据,进行业务逻辑处理,然后返回处理后...

    SpringBatch成功案例(CSV、XML、自定义长度等方式)

    SpringBatch提供了`FlatFileItemReader`和`FlatFileItemWriter`用于读写CSV文件。在案例中,你可以看到如何配置这些组件来解析逗号分隔的数据,并将其转换为Java对象,或者将Java对象写入CSV文件。通过设置字段映射...

    spring batch demo

    Spring Batch提供了多种Item Readers,如FlatFileItemReader用于读取文本文件。 4. **Item Processor**:对读取到的每个项目进行处理,可以进行数据转换、验证等操作。 5. **Item Writer**:将处理后的数据写入目标...

    spring5.0master

    Spring Batch提供了一系列预定义的读取器,如FlatFileItemReader用于读取文本文件。 4. **处理器(Item Processor)**:处理器接收从读取器读取的项,并对其进行处理,可以返回一个新的项或原样返回。这是实现业务...

    Spring Batch参考文档中文版

    - **FlatFileItemReader**:用于读取文本文件中的数据。 - **XML条目读写器**:用于处理XML格式的数据。 - **StaxEventItemReader**:使用StAX API读取XML数据。 #### 十二、Item Writer - **FlatFileItemWriter**...

Global site tag (gtag.js) - Google Analytics