4.2 配置

定义你的组件

你需要定义并实现一些组件,确保Spring会扫描到这些组件并注册进上下文

@Component("a")
public class ACmp extends NodeComponent {
@Override
public void process() {
//do your business
}
}

Spring xml中的配置

<context:component-scan base-package="com.yomahub.flowtest.components" />
<bean id="springAware" class="com.yomahub.liteflow.util.SpringAware"/>
<bean class="com.yomahub.liteflow.spring.ComponentScaner"/>
<bean id="liteflowConfig" class="com.yomahub.liteflow.property.LiteflowConfig">
<property name="ruleSource" value="config/flow.xml"/>
<!-- 以下都不是必须的,都有默认值 -->
<property name="slotSize" value="2024"/> <!-- 默认为1024 -->
<property name="whenMaxWaitSecond" value="20"/> <!-- 默认为15 -->
<property name="whenMaxWorkers" value="10"/> <!-- 默认为4 -->
<property name="whenQueueLimit" value="100"/> <!-- 默认为100 -->
<property name="enableLog" value="true"/> <!-- 默认为false -->
<property name="queueLimit" value="100"/> <!-- 默认为200 -->
<property name="period" value="5000"/> <!-- 默认为300000,5分钟 -->
<property name="delay" value="5000"/> <!-- 默认为300000,5分钟 -->
</bean>
<bean id="flowExecutor" class="com.yomahub.liteflow.core.FlowExecutor">
<property name="liteflowConfig" ref="liteflowConfig"/>
</bean>
<!-- 如果上述enableLog为false,下面这段也可以省略 -->
<bean class="com.yomahub.liteflow.monitor.MonitorBus">
<property name="liteflowConfig" ref="liteflowConfig"/>
</bean>

规则文件的定义

同时,你得在resources的config/flow.xml中如下配置:

<?xml version="1.0" encoding="UTF-8"?>
<flow>
<chain name="chain1">
<then value="a,b,c"/>
<when value="d,e"/>
</chain>
</flow>

Spring在启动时会自动装载规则文件。

Last updated on