最近收到一个任务,要用java开发一套业务管理系统,心想着应该不难,无非也是按框架办事,于是开始构思框架。一番商量后觉得采用SSH框架不错,于是咋们开始动手,但遇到后期,业务越来越复杂,业务是具有可变性,让我的项目进度越来越慢,主要是复杂多变的业务对象处理和协调很容易混乱甚至出错,心想着要是能把业务层分离出来独立的去处理,那么项目开发效率将会大大提高。于是我无意中发现了“规则引擎”这个玩意,可能很多人都没听过规则引擎,也不知道他的作用,但它确实对我的项目有着决定性的帮助。
规则引擎就是嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。 这么一听岂不是和我前面的设计思路一致吗?把业务层分离出来独立的去管理与编写。 有了这个神奇的组件,我就继续开搞。
首先我把以前项目中的业务代码删掉了,换成了几句简单明了的语句:
RuleEngine ruleEngine = RuleEngineFactory.newInstance().getRuleEngine();
规则引擎的业务规则包编写
下面来简单演示一下我是如何利用规则引擎来处理我的业务层代码
首先打开规则配置器
点击图标
我这里用的是4.0版本
进入界面
我这里创建了一个业务演示工程和规则包,创建方法是点击文件,新建工程,工程名为:项目演示。点击确定即可创建成功
创建成功后如下图,右键项目,然后新建规则包
然后添加规则
双击规则进入规则编制界面
可以看到默认界面和我们使用的if else语句很像,这里我为了简单演示,就不设条件了,直接点击“那么”下面的蓝色箭头,根据提示点击出现菜单,选择调试输出
出现了中文指令,咋们点击图中的 " : "冒号,选择输入常量
点击“空”,输入对话框,如下图输入,这里我输入hello 旗正!
至此我们的业务编写完成,最后点击保存
选择执行到此的页面,点击绿色按钮运行规则包,如下图
上面只简单的演示一下,可以看见,通过规则引擎,我们可以把业务层的处理工作交由规则引擎去实现和处理,并把写好的规则包交由java调用,以后碰到业务变更的时候我们这需要把规则包通过编辑器修改一下就可以用了,不需要改动我们的java代码。
关于java掉用规则包的教程,请关注我的博客。
本文为原创文章,转载请注明出处!