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
分享到:
相关推荐
Getting started with Spring Framework (4th Edition) is a hands-on guide to begin developing applications using Spring Framework 5. The examples (consisting of 88 sample projects) that accompany this ...
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单...
Spring源代码解析(一):Spring中的事务处理 Spring源代码解析(二):ioc容器在Web容器中的启动 Spring源代码分析(三):Spring JDBC Spring源代码解析(四):Spring MVC Spring源代码解析(五):Spring AOP获取Proxy ...
Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注...
Spring3.2 Spring4.3 Spring5.0三个版本的jar包,都是官方下载,亲测可用,放心下载。
spring boot , spring cloud alibaba, spring cloub 版本选型
Classes contained in spring-mock.jar: org.springframework.mock.jndi.ExpectedLookupTemplate.class org.springframework.mock.jndi.SimpleNamingContext.class org.springframework.mock.jndi....
spring 资料spring 资料spring 资料
spring3.1官方所有的jar包 org.springframework.aop-3.1.RELEASE.jar org.springframework.asm-3.1.RELEASE.jar org.springframework.aspects-3.1.RELEASE.jar org.springframework.beans-3.1.RELEASE.jar org....
将spring2的开发包spring.jar替换为附件中压缩文件的所有jar包,既可以将spring2.0的应用升级到spring3.0.5
简单的spring cloud项目,适合新手学习使用
spring之AOP(动态代理),包括jdk动态代理和CGLib动态代理
spring配置 spring配置 spring配置 spring配置 spring配置
spring4.x中的jar包下载,spring4.0.6下载,spring最新稳定版jar包下载 http://maven.springframework.org/release/org/springframework/spring/ 这个链接中有各种稳定版的jar包下载 目前官网上大部分都要maven下载
《Spring技术内幕:深入解析Spring架构与设计原理》是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔!Java开发者社区和Spring开发者社区一致强烈推荐。国内第一本基于Spring3.0的著作,从...
spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...
spring定时器spring定时器spring定时器spring定时器spring定时器
spring之定时任务实现(spring-task和quartz,注解,非注解等不同方式),附文档+源码工程,本人已测试通过才上传,希望对大家有所帮助
spring 3.2.4 Realease 的所有jar包: spring-context-3.2.4.RELEASE.jar spring-core-3.2.4.RELEASE.jar spring-beans-3.2.4.RELEASE.jar spring-test-3.2.4.RELEASE.jar spring-web-3.2.4.RELEASE.jar spring-aop-...
通过一个使用Spring、Spring Boot和Spring Cloud的小例子来说明如何构建微服务系统。 具体请看附件文件中的:readme.txt 和 [译]Spring构建微服务.png 访问地址:http://localhost:1111/ 运行顺序:...