Spring Batch Getting Started

首先建立工程:
【1】download STS 实际上就是eclipse+spring的一些plugin非常好用 -->http://www.springsource.com/products/sts
【2】new->spring Template Project -> spring batch project
剩下的,直接运行各个junt的test都能够完美通过。

然后来读一下代码:
这个template的结构很简单主要是给大家做模板用的么!
一个reader 一个write 基本就结束了。
配置也很清晰,一个launch-context.xml 还有一个module-context.xml.
但是运行的时候还是有几点让我感到疑惑:
【1】batch.properties中有这样一句 batch.schema.script=schema-hsqldb.sql ,但是我横竖在源代码中没有找到,但是成寻运行很完美,神奇啊。
按我的理解schema-hsqldb.sql应该放的是spring batch 执行时的状态信息的表结构的,比如表BATCH_JOB_INSTANCE的表结构之类的。仔细一找,哈哈原来躲在 spring-batch-core-xx.jar里面呢。
【2】表结构是如何在数据库里面创建的呢?
答案就在类DataSourceInitializer它执行的时候会读取schema-hsqldb.sql的内容创建表结构。
【3】DataSourceInitializer是何时执行的的呢?
这个问题困扰我了很久,最后发现只要是单列的,基本上xml load分析的过程中都会把里面定义的bean初始化。为此我还做了个测试建立个普通的bean然后在lauch-context中定义,发现在load的时候也被初始化了。
【4】如果不以mem的方式运行hsql呢?
将batch.properties的 #batch.jdbc.url=jdbc:hsqldb:mem:testdb;sql.enforce_strict_size=true 注销。打开配置batch.jdbc.url=jdbc:hsqldb:hsql://localhost:9001/samples
另外还需要在工程目录下建立一个server.properties文件简单如下
<code>
server.database.0 file:./samples
server.dbname.0 samples
</code>
然后先启动hsql数据库,让后启动测试程序,完美。再用DbVisualizer Free 6.5.4查看一下数据库的内容果然所有的状态都很好的保存在了数据库中。
由于server方式运行的hsql的数据库是有持久性的,所以要再次运行测试必须完成以下两步。
第一步:在launch-context.xml中将DataSourceInitializer的部分注销,应为数据库只需要初始化一次。
第二步将工程目录下的samples .script insert部分删除。否则会主键冲突。

总结:
这个simple的template虽然很简单,但是对于理解spring batch的运行过程还是很有帮助的。至少对spring batch 的几个组件有了初步的了解。
jobRepository jobLauncher job1 step1 reader writer
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值