commons-chain 应用记录
相关参考:
开始使用Commons Chain (第一部分)
开始使用Commons Chain (第二部分)
Apache Commons Chain简明手册
?
命令模式和责任链模式是编写业务处理流程中值得推荐的(可以有效解耦业务流程,使实现更面向对象),Apache 的 Commons-Chain 项目已将两者完美的结合。
?
以下简要记录应用 commons-chain 实现具体业务流程的过程,以“增加企业员工”为例。
“增加企业员工”的流程如下:
1)检查企业是否存在
2)检查企业是否可用
3)检查是否已达到企业员工数上限
4)检查待新增的员工是否已存在
5)上述校验均通过则增加员工
6)成功增加员工后,更新企业有关信息
?
应用 commons-chain 实现该业务流程的过程如下:
1. 进行“增加企业员工”的流程 chain 配置(即创建catalog xml文件),demo-chain.xml 内容如下:
?
2. 编写各个具体的 command 类(即各个步骤的具体实现),有2个接口可供实现 :
1)org.apache.commons.chain.Command, 以 demo.chain.Interceptor.IsCorpExist 为例,其代码如下:
?filter 主要可以用于异常处理,同时在业务流程比较简单时,也可将这个业务流程写在一个 filter 里,在 execute 方法中实现其主流程,postprocess 中实现主流程之后的附加处理。
?
3. 具体的 command 类均实现后,调用“增加企业员工”的流程实现:
<dependency><groupId>commons-chain</groupId><artifactId>commons-chain</artifactId><version>1.2</version></dependency><dependency><groupId>commons-digester</groupId><artifactId>commons-digester</artifactId><version>1.8.1</version></dependency>?经实践,commons-digester 1.8.1 和? commons-chain 1.2 运行以上代码无问题, commons-digester 1.7 和 commons-digester 2.0 在 main 函数运行过程中均有异常产生(均与解析xml有关)。
?