摘要: 最近一个项目在使用SpringBatch框架做一个电子商务平台的批处理。网上资料很有限,尤其是中文资料更是少之又少,官网上的文档也只是讲一些入门的基础知识,大部分高级特性都是一笔带过,讲解的很不彻底,在实际开发中碰到的问题很多。因此,特将自己学习、应用Spring Batch的过程总结成一个个小实例写成随笔。一是备忘,二是抛砖引玉,希望更多的高手能参与进来,指出其中的不足和提出自己的见解,大家共通讨论学习。写过的关于SpringBatch的随笔主要有以下几篇: Spring Batch 之 Spring Batch 简介(一) Spring Batch 之 框架流程简单介绍(二) Sprin.阅读全文
posted @ 2011-12-20 20:04 孤旅者 阅读(1915) 评论(0) 编辑
摘要: 最近一蛋疼项目要在Windows、Redhat以及Solaris三种环境下开发。关于Solaris的环境配置搞了好几天,现将其配置总结如下: 由于Solaris10的x86版安装有问题,随去http://openindiana.org/上down了OpenIndiana的pc版,但是其默认没有安装GCC。 OpenIndiana上安装GCC大致分为以下几步:一,安装GCC 1,下载相应的GCC安装包(网址:http://www.sunfreeware.com/indexintel10.html): >>gcc-3.4.6-sol10-x86-local.gz >>lib阅读全文
posted @ 2012-05-24 19:44 孤旅者 阅读(719) 评论(0) 编辑
摘要: 最近有个项目要调用原有的DLL文件,本来准备使用JNA,可是客户不同意,非要使用JNI的方式。万般无奈之下,只能重新使用JNI,现将JAVA调用动态链接库的一般方法总结如下。 JNI是Java Native Interface(JAVA本地调用)的缩写。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 使用JNI调用DLL文件的步骤一般有以下几步: 1、编写带有native声.阅读全文
posted @ 2012-04-29 22:23 孤旅者 阅读(29) 评论(0) 编辑
摘要: 以前做Java,这一段在捣鼓一个C++的项目,需要调用其他项目组做的DLL文件,现将创建和调用DLL的方法和步骤记录如下。 一、创建DLL 1、新建项目: Visual C++ -> Win32项目,名称:CnBlogsDLL点击完成,进入下一步。注意不要点完了按钮,点击下一步。选中DLL单选框,然后点击完成。这样DLL项目的创建工作就基本结束了。 2、新建头文件:CommStruts.h#pragma once// 学生构造体typedef struct { // 学生名称 char Name[8]; // 学生年齢 int Age; } Student; ...阅读全文
posted @ 2012-03-14 17:16 孤旅者 阅读(2271) 评论(11) 编辑
摘要: 今天天气不错,风和日丽的。虽然还有初春的乍寒,但这时的上海天气还是些许宜人的。2012年2月18号,一个普通的不能再普通的日子,一个平淡的不能再平淡的周末,但对我来说是值得纪念的一天,是我人生的又一个起点,因为今天我终于收到了上海交通大学的录取通知书。 决心参加GCT考试,始于去年5月份与朋友一次偶然的聊天。开始时本想报考华东师范大学的软件学院,一是觉得华师大实力还可以,二是担心没有时间复习,毕竟华师的录取线比复旦、交大还是低一些,相对应该好考一些。可是后来与华师大联系后得知,今年华师大的招生工作在无锡进行,上海本地不招生。去网上查了很多考试信息,很多通过的人都说考试其实并不是很难,主要是基.阅读全文
posted @ 2012-02-19 14:29 孤旅者 阅读(4446) 评论(95) 编辑
摘要: 继续前面关于Spring Batch系列的文章,本文主要介绍与JobParameters相关的一些知识。一、JobParameters 顾名思义,所谓JobParameters,就是Job运行时的参数。它在bath中有两个作用:一是标示不同的jobInstance,二是作为job中用到的信息,以参数的形式传给job。 如何使用JobParameters呢?它主要是在启动的job的时候,与job联系起来的。看一下框架提供的启动job的接口JobLauncher的源代码,就会发现其run方法需要两个参数,一个是Job,也就是需要启动的job,另一个就是JobParameters。可以通过如下方式.阅读全文
posted @ 2012-01-31 00:45 孤旅者 阅读(1379) 评论(0) 编辑
摘要: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。当然反射本身并不是一个新概念,它可能会使我们联想到光学中的反射概念,尽管计算机科学赋予了反射概念新的含义,但是,从现象上来说,它们确实有某些相通之处,.阅读全文
posted @ 2012-01-27 00:53 孤旅者 阅读(1531) 评论(6) 编辑
摘要: 外面响着噼里啪啦的鞭炮声,窗口不时映入烟火的斑斓。一桌一椅一电脑,独自享受着这特殊的除夕夜,心里说不出是什么感受,落寞、无奈、亦或是习惯。 今天,2011马上就要谢幕;明天,2012将要上演。回头看看自己走过的这一年,发生的事情还真不少。欧洲债务危机、日本大地震、利比亚改朝换代、泰国百年不遇大洪灾;本拉登挂了、卡扎菲毙了、金正日死了、乔帮主也西游了;国内的“我爸是李刚”事件、五道杠事件、7*23事件、小悦悦事件,有的让人惋惜,有的让人无奈,还有的让人愤慨。不管是国外还是国内,这些事情都很遥远,至少对现在的、坐在电脑前的我很遥远。只有那些真正发生在我身上的事,那些小事,那些对别人来说不值一提的.阅读全文
posted @ 2012-01-23 12:35 孤旅者 阅读(1331) 评论(7) 编辑
摘要: 前面的文章跟大家一起讨论了Spring Batch的概念,处理流程,以及SpringBatch处理文件、DB的一些简单实例。接下来的讨论,主要是关于Spring Batch的一些高级应用处理和实际开发中需要注意的一些问题。 今天主要和大家讨论SpringBatch关于skip容错机制的一些处理。 一、skip的介绍 在实际的项目开发中,我们常常要将几十万甚至上百万的数据从文件导入到DB中,如果其中某条数据导入时发生例外,我们并不想整个Job以失败而结束,而是希望能将错误的数据经过处理后保存起来,其余正确的数据继续做导入处理。如果遇到这样的场景,SpringBatch的skip机制就可以派上用.阅读全文
posted @ 2012-01-02 01:07 孤旅者 阅读(1183) 评论(0) 编辑
摘要: 前面关于Spring Batch的文章,讲述了SpringBatch对Flat、XML等文件的读写操作,本文将和大家一起讨论Spring Batch对DB的读写操作。Spring Batch对DB数据的读取操作提供两种形式,一种是以游标为基础,一条条的读取数据;另外一种是分页的方式读取DB。 通过前面文章的讲解,大家应该对SpringBatch的框架和基本配置有了一定的了解。为了不显得啰嗦,本文只提供读取DB方式的核心配置,一些辅助信息的配置,如果不明白,可以参照前面几讲的内容。 首先是读操作: 1 <bean:bean id="jdbcItemReader" 2 c阅读全文
posted @ 2011-12-27 23:22 孤旅者 阅读(1524) 评论(0) 编辑
摘要: 最近一个项目在使用SpringBatch框架做一个电子商务平台的批处理。网上资料很有限,尤其是中文资料更是少之又少,官网上的文档也只是讲一些入门的基础知识,大部分高级特性都是一笔带过,讲解的很不彻底,在实际开发中碰到的问题很多。因此,特将自己学习、应用Spring Batch的过程总结成一个个小实例写成随笔。一是备忘,二是抛砖引玉,希望更多的高手能参与进来,指出其中的不足和提出自己的见解,大家共通讨论学习。写过的关于SpringBatch的随笔主要有以下几篇: Spring Batch 之 Spring Batch 简介(一) Spring Batch 之 框架流程简单介绍(二) Sprin.阅读全文
posted @ 2011-12-20 20:04 孤旅者 阅读(1915) 评论(0) 编辑
摘要: 前面关于Spring Batch的文章,讲述了SpringBatch对CSV文件的读写操作、对XML文件的操作,以及对固定长格式文件的操作。这些事例,同一个Reader读取的都是相同格式的数据,最终写入一个文件。如果遇到下面这样的数据,并想将学生信息和商品信息分类后写入两个文件,应该如何处理呢?student,200001,ZhangSan,18,78goodsPNH001011000200.1zhangshana2011/12/18 01:12:36student,200002,LiSi,19,79goodsPNH001022000300.1zhangshanb2011/12/19 01:.阅读全文
posted @ 2011-12-18 02:25 孤旅者 阅读(531) 评论(0) 编辑
摘要: 前篇关于Spring Batch的文章,讲述了Spring Batch 对XML文件的读写操作。本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对固定长格式文件的读写操作。实例延续前面的例子,读取一个含有四个字段的TXT文件(ID,Name,Age,Score),对读取的字段做简单的处理,然后输出到另外一个TXT文件中。 工程结构如下图: applicationContext.xml和log4j.xml前文已经叙述过,在此不做赘述。 本文核心配置文件batch.xml内容如下: 1 <?xml version="1.0" encoding=&quo阅读全文
posted @ 2011-12-17 14:11 孤旅者 阅读(420) 评论(0) 编辑
摘要: 前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作。本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作。实例流程是从一个XML文件中读取商品信息,经过简单的处理,写入另外一个XML文件中。 工程结构如下图: log4j.xml是log处理的配置文件,与本文没有必然联系,再此不做论述。application.xml文件内容如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="ht阅读全文
posted @ 2011-12-03 23:31 孤旅者 阅读(642) 评论(0) 编辑
摘要: 今天在调试一个基础的Struts2框架小程序。总是提示"There is no Action mapped for namespace / and action name"的错误。上网查询后发现这是一个初学者经常碰到的问题,导致错误的原因主要有两种。总结如下: 一、struts.xml文件错误。这种错误又分为以下几种:1,struts.xml文件名错误。一定要注意拼写问题;2,struts.xml文件放置路径错误。一定要将此文件放置在src目录下。编译成功后,要确认是否编译到classes目录中;3,struts.xml文件内容错误。下面给出一个正确的struts.xml文阅读全文
posted @ 2011-11-21 00:07 孤旅者 阅读(319) 评论(0) 编辑
摘要: 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对CSV文件的读写操作。此实例的流程是:读取一个含有四个字段的CSV文件(ID,Name,Age,Score),对读取的字段做简单的处理,然后输出到另外一个CSV文件中。 工程结构如下图: JobLaunch类用来启动Job, CsvItemProcessor类用来对Reader取得的数据进行处理, Student类是一个POJO类,用来存放映射的数据。 inputFile.csv是数据读取文件, outputFile.csv是数据输出文件。 application.xml文件配置如前篇文章,不再赘述。 batch.xml..阅读全文
posted @ 2011-11-06 14:51 孤旅者 阅读(1313) 评论(23) 编辑
摘要: 通过前面两篇关于Spring Batch文章的介绍,大家应该已经对Spring Batch有个初步的概念了。这篇文章,将通过一个”Hello World!”实例,和大家一起探讨关于Spring Batch的一些基本配置和实现。使大家从开发的角度对Spring Batch有一个真切的体会。 说明:1,本实例使用的是spring-batch 2.1.82,本实例没有像前面讲的那样配置ItemReader、ItemProcessor和ItemWriter,而是之间在Step中调用Tasklet,由Tasklet完成”Hello World!”的输出。 工程结构如下图: JobLaunch.java.阅读全文
posted @ 2011-10-31 19:41 孤旅者 阅读(1420) 评论(11) 编辑
摘要: Spring Batch流程介绍:上图描绘了Spring Batch的执行过程。说明如下: 每个Batch都会包含一个Job。Job就像一个容器,这个容器里装了若干Step,Batch中实际干活的也就是这些Step,至于Step干什么活,无外乎读取数据,处理数据,然后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数据,ItemWriter用来写数据) 。JobLauncher用来启动Job,JobRepository是上述处理提供的一种持久化机制,它为JobLauncher,Job,和Step实例提供CRUD操作。 外部控制器调用JobLauncher阅读全文
posted @ 2011-10-25 18:02 孤旅者 阅读(1202) 评论(9) 编辑
摘要: Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。 业务方案:1、批处理定期提交。2、并行批处理:并行处理工作。3、企业消息驱动处理4、大规模的并行处理5、手动或是有计划的重启6、局部处理:跳过记录(如:回滚)技术目标:1、利用Spring编程模型:使程序员专注于业务处理,让Spri.阅读全文
posted @ 2011-10-21 14:32 孤旅者 阅读(1032) 评论(0) 编辑
摘要: 昨天用eclipse开发了一个操作xml文件的bat调用jar小工具。由于第一次使用bat调用自己生成的jar包,遇到了两个觉得比较典型的问题,现记录下来,希望能对其他初学者有所帮助。一,工具介绍和打包过程工具作用:按照一定的规则更新xml文件。使用方法:用bat调用工具。开发过程:在eclipse环境下完成代码的开发和调试。生成jar包(在工程上右击=>选择Export=>选择JAR file,点击Next=>选择导出路径和名称,一直点击Next,直到完成),用bat调用生成的jar包(java -jar mkNttEstTest.jar D:\mkNttEstTest\i阅读全文
posted @ 2011-09-01 17:03 孤旅者 阅读(511) 评论(0) 编辑
摘要: W3C DOM Level2 Core规定,Document 接口下的 createElement 方法可以创建一个元素节点对象实例。它可以传入一个字符串参数 tagName,在 HTML 中,这个参数可以是任何形式,但tagName 应为一个合法的标签名。 例如:document.createElement("td");//创建一个td 若 tagName 中出现不合法的字符,则应抛出 INVALID_CHARACTER_ERR 异常。 由于微软的强大,其产品IE使用了一些规范以外的规则,其中之一就与createElement方法有关。即:在 IE 中,createEle阅读全文
posted @ 2011-08-10 15:13 孤旅者 阅读(645) 评论(0) 编辑