更新時(shí)間:2022-10-24 10:44:03 來源:動力節(jié)點(diǎn) 瀏覽4619次
本教程展示了如何使用開源 Neuro4j Workflow 創(chuàng)建和運(yùn)行一個(gè)簡單的 java 工作流應(yīng)用程序。工作流框架使您的程序更具可讀性和更易于維護(hù),而不會影響性能。
Neuro4j 工作流程 3.4.1
Maven 4.0
Neuro4j Studio 3.0(基于 Eclipse Neon)
JDK 1.8

發(fā)出以下 Maven 命令以創(chuàng)建標(biāo)準(zhǔn) Java 項(xiàng)目結(jié)構(gòu)。
mvn archetype:generate -DgroupId =org.neuro4j.workflow.tutorial -DartifactId =WorkflowExample
-DarchetypeArtifactId =maven-archetype-quickstart -DinteractiveMode = false
在 Maven pom.xml文件中添加下面列出的 Neuro4j Workflow 3.3.1 依賴項(xiàng) 。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http:// /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" >
<modelVersion> 4.0.0 </modelVersion>
<groupId> org.neuro4j.workflow.tutorial < /groupId>
<artifactId> WorkflowExample </artifactId>
<packaging> jar </packaging>
<version> 1.1-SNAPSHOT </version>
<name> WorkflowExample </name>
<url> http://maven.apache.org < /網(wǎng)址>
<properties>
<project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>
<org.neuro4j.version> 3.3.1 </org.neuro4j.version>
<java.version> 1.8 </java.version >
</屬性>
<dependencies>
<dependency>
<groupId> org.neuro4j </groupId>
<artifactId> neuro4j-workflow-common </artifactId>
<version> ${org.neuro4j.version} </version>
</dependency>
<dependency>
<groupId> junit </groupId>
<artifactId> junit </artifactId>
<version> 4.8.2 </version>
<scope> test </scope>
</dependency>
</dependencies>
<build>
<resources>
<resource >
<目錄>src/main/java </directory>
<includes>
<include> **/*.n4j</include>
</includes>
</resource>
<resource>
<directory> src/main/resources </directory>
<includes>
<include> **/*.png </include>
</includes>
</resource >
</resources>
<testResources>
<testResource>
<directory> src/test/java </directory>
<includes>
<include> **/** </include>
</includes>
</testResource>
<testResource>
<目錄> src/test/resources </directory>
<includes>
<包括> **/** </include>
</includes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId> org.apache.maven.plugins </groupId>
<artifactId> maven-compiler-plugin </artifactId>
<version> 3.1 </version>
<configuration>
<source> ${java.version} </source>
<target> ${java.version} </target>
</configuration>
</plugin>
</plugins>
</build>
</project>
打開 Neuro4j 工作室
切換到 Neuro4j Flow 透視圖

選擇包“org.neuro4j.workflow.tutorial”
選擇新建自定義塊向?qū)?/p>


點(diǎn)擊下一步。

單擊完成。
更新方法“執(zhí)行”。
一個(gè)簡單的 java CustomBlock。
包組織。神經(jīng)4j 。工作流程。教程;
導(dǎo)入 靜態(tài)組織。神經(jīng)4j 。工作流程。教程。你好世界。IN_NAME ;
導(dǎo)入 靜態(tài)組織。神經(jīng)4j 。工作流程。教程。你好世界。OUT_MESSAGE ;
導(dǎo)入 org.neuro4j.workflow.ActionBlock ;
導(dǎo)入 org.neuro4j.workflow.FlowContext ;
導(dǎo)入 org.neuro4j.workflow.common.FlowExecutionException ;
導(dǎo)入 org.neuro4j.workflow.common.ParameterDefinition ;
導(dǎo)入 org.neuro4j.workflow.common.ParameterDefinitionList ;
導(dǎo)入 靜態(tài)組織。神經(jīng)4j 。工作流程。枚舉。動作塊緩存.*;
導(dǎo)入 org.neuro4j.workflow.enums.CachedNode ;
導(dǎo)入 org.slf4j.Logger ;
導(dǎo)入 org.slf4j.LoggerFactory;
/**
* HelloWorld 塊接收名稱作為輸入?yún)?shù)并返回消息作為輸出參數(shù)。
*
*/
@ParameterDefinitionList ( input = { @ParameterDefinition ( name = IN_NAME , isOptional = true , type = "java.lang.String" ) },
output = { @ParameterDefinition ( name = OUT_MESSAGE , isOptional = true , type = "java .lang.String") })
// 將在工作流中只創(chuàng)建一個(gè) HelloWorld 類的實(shí)例
@CachedNode ( type = SINGLETON )
public class HelloWorld implements ActionBlock {
私有 靜態(tài) 最終Logger logger = LoggerFactory 。getLogger ( HelloWorld.class ) ; _
static final String IN_NAME = "name" ;
靜態(tài) 最終字符串 OUT_MESSAGE = "消息" ;
公共 int 執(zhí)行( FlowContext ctx ) 拋出FlowExecutionException {
字符串名稱= (字符串) ctx 。獲?。?IN_NAME );
字符串消息= "Hello World!" ;
如果 (名稱!= null ) {
消息+=名稱;
}
記錄器。調(diào)試(“消息:{}” ,消息);
ctx _ 放( OUT_MESSAGE ,消息);
返回下一個(gè);
}
}
創(chuàng)建工作流
選擇包“org.neuro4j.workflow.tutorial”
選擇新建工作流向?qū)?/p>

將開始節(jié)點(diǎn)、自定義節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)添加到流中
將開始節(jié)點(diǎn)重命名為“開始”

選擇自定義節(jié)點(diǎn)。在屬性視圖上選擇實(shí)現(xiàn)類

選擇類“org.neuro4j.workflow.tutorial.HelloWorld”
保存流量。
客戶端運(yùn)行工作流的 java 代碼。
包組織。神經(jīng)4j 。工作流程。教程;
導(dǎo)入 java.util.HashMap ;
導(dǎo)入 java.util.Map ;
導(dǎo)入 org.neuro4j.workflow.ExecutionResult ;
導(dǎo)入 org.neuro4j.workflow.common.WorkflowEngine ;
導(dǎo)入 org.neuro4j.workflow.common.WorkflowEngine.ConfigBuilder ;
/**
* 這是客戶端的類。
*/
公共 類 App
{
公共 靜態(tài) 無效 主要(字符串[]參數(shù))
{
// 使用默認(rèn)配置創(chuàng)建引擎
WorkflowEngine engine = new WorkflowEngine ( new ConfigBuilder ());
// 輸入?yún)?shù)
Map < String , Object > parameters = new HashMap < String , Object >();
參數(shù)。放(“名稱” , “工作流程” );
//執(zhí)行流程
ExecutionResult result = engine . 執(zhí)行(“org.neuro4j.workflow.tutorial.HelloFlow-Start” ,參數(shù));
if ( result.getException ( ) == null ) { String
message = ( String )結(jié)果。獲取流上下文()。獲?。ā跋ⅰ?);
系統(tǒng)。出來。println ( "消息:" +消息);
} 其他 {
結(jié)果. 打?。ǎ?;
}
}
}
使用 maven 或 Eclipse 運(yùn)行代碼。
mvn 干凈安裝
mvn compile exec:java -Dexec.mainClass="org.neuro4j.workflow.tutorial.App"
結(jié)果:
消息:世界你好!工作流程
相關(guān)閱讀

初級 202925

初級 203221

初級 202629

初級 203743