⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 businesslayer.java

📁 JBoss Drools规则引擎
💻 JAVA
字号:
package test;

import java.io.InputStreamReader;
import java.io.Reader;


import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.event.DebugWorkingMemoryEventListener;
import org.drools.rule.Package;

public class BusinessLayer {
	//引入规则引擎
	private final static String Business_Rule_File = "/BusinessRule.drl";

	//内部规则库
	private static RuleBase businessRules = null;
	
	 static StockOff st=new StockOff();

	//加载规则文件
	//用一个静态的方法来添加规则文件
	private static RuleBase readRules() throws Exception {
		//读入规则文件
		Reader source = new InputStreamReader(BusinessLayer.class
				.getResourceAsStream(Business_Rule_File));

		PackageBuilder builder = new PackageBuilder();

		builder.addPackageFromDrl(source);

		Package pkg = builder.getPackage();

		RuleBase ruleBase = RuleBaseFactory.newRuleBase();

		ruleBase.addPackage(pkg);

		return ruleBase;

	}

	//评价是否购买这只股票
	public static void evaluateStockPurchase(StockOff stockToBuy) {
		//执行读入方法
		try {
			businessRules = readRules();

		} catch (Exception e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		//输出一下
		System.out.println("激活规则文件");
		System.out.println("----输出----");
		//规则库的WorkingMemory
		WorkingMemory workingMemory = businessRules.newStatefulSession();

		workingMemory.addEventListener(new DebugWorkingMemoryEventListener());

		//插入事实,把参数插入到workingMemory
		workingMemory.insert(stockToBuy);

		//利用直接插入数据的方式
		//有待改进
		
		 st.setStockName("XYZ");
		 st.setStockPrice(50);
		 st.setStockQuantity(1000);
		 
		 workingMemory.insert(st);
		
		//激活规则
		workingMemory.fireAllRules();

	}
	public static void main(String args[])
	{
		BusinessLayer b=new BusinessLayer();
		b.evaluateStockPurchase(st);
		System.out.println("2009年5月10日23:38:28");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -