更新時間:2022-10-24 10:44:03 來源:動力節點 瀏覽3621次
本教程展示了如何使用開源 Neuro4j Workflow 創建和運行一個簡單的 java 工作流應用程序。工作流框架使您的程序更具可讀性和更易于維護,而不會影響性能。
Neuro4j 工作流程 3.4.1
Maven 4.0
Neuro4j Studio 3.0(基于 Eclipse Neon)
JDK 1.8
發出以下 Maven 命令以創建標準 Java 項目結構。
mvn archetype:generate -DgroupId =org.neuro4j.workflow.tutorial -DartifactId =WorkflowExample
-DarchetypeArtifactId =maven-archetype-quickstart -DinteractiveMode = false
在 Maven pom.xml文件中添加下面列出的 Neuro4j Workflow 3.3.1 依賴項 。
<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 < /網址>
<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”
選擇新建自定義塊向導
點擊下一步。
單擊完成。
更新方法“執行”。
一個簡單的 java CustomBlock。
包組織。神經4j 。工作流程。教程;
導入 靜態組織。神經4j 。工作流程。教程。你好世界。IN_NAME ;
導入 靜態組織。神經4j 。工作流程。教程。你好世界。OUT_MESSAGE ;
導入 org.neuro4j.workflow.ActionBlock ;
導入 org.neuro4j.workflow.FlowContext ;
導入 org.neuro4j.workflow.common.FlowExecutionException ;
導入 org.neuro4j.workflow.common.ParameterDefinition ;
導入 org.neuro4j.workflow.common.ParameterDefinitionList ;
導入 靜態組織。神經4j 。工作流程。枚舉。動作塊緩存.*;
導入 org.neuro4j.workflow.enums.CachedNode ;
導入 org.slf4j.Logger ;
導入 org.slf4j.LoggerFactory;
/**
* HelloWorld 塊接收名稱作為輸入參數并返回消息作為輸出參數。
*
*/
@ParameterDefinitionList ( input = { @ParameterDefinition ( name = IN_NAME , isOptional = true , type = "java.lang.String" ) },
output = { @ParameterDefinition ( name = OUT_MESSAGE , isOptional = true , type = "java .lang.String") })
// 將在工作流中只創建一個 HelloWorld 類的實例
@CachedNode ( type = SINGLETON )
public class HelloWorld implements ActionBlock {
私有 靜態 最終Logger logger = LoggerFactory 。getLogger ( HelloWorld.class ) ; _
static final String IN_NAME = "name" ;
靜態 最終字符串 OUT_MESSAGE = "消息" ;
公共 int 執行( FlowContext ctx ) 拋出FlowExecutionException {
字符串名稱= (字符串) ctx 。獲取( IN_NAME );
字符串消息= "Hello World!" ;
如果 (名稱!= null ) {
消息+=名稱;
}
記錄器。調試(“消息:{}” ,消息);
ctx _ 放( OUT_MESSAGE ,消息);
返回下一個;
}
}
創建工作流
選擇包“org.neuro4j.workflow.tutorial”
選擇新建工作流向導
將開始節點、自定義節點和結束節點添加到流中
將開始節點重命名為“開始”
選擇自定義節點。在屬性視圖上選擇實現類
選擇類“org.neuro4j.workflow.tutorial.HelloWorld”
保存流量。
客戶端運行工作流的 java 代碼。
包組織。神經4j 。工作流程。教程;
導入 java.util.HashMap ;
導入 java.util.Map ;
導入 org.neuro4j.workflow.ExecutionResult ;
導入 org.neuro4j.workflow.common.WorkflowEngine ;
導入 org.neuro4j.workflow.common.WorkflowEngine.ConfigBuilder ;
/**
* 這是客戶端的類。
*/
公共 類 App
{
公共 靜態 無效 主要(字符串[]參數)
{
// 使用默認配置創建引擎
WorkflowEngine engine = new WorkflowEngine ( new ConfigBuilder ());
// 輸入參數
Map < String , Object > parameters = new HashMap < String , Object >();
參數。放(“名稱” , “工作流程” );
//執行流程
ExecutionResult result = engine . 執行(“org.neuro4j.workflow.tutorial.HelloFlow-Start” ,參數);
if ( result.getException ( ) == null ) { String
message = ( String )結果。獲取流上下文()。獲取(“消息” );
系統。出來。println ( "消息:" +消息);
} 其他 {
結果. 打印();
}
}
}
使用 maven 或 Eclipse 運行代碼。
mvn 干凈安裝
mvn compile exec:java -Dexec.mainClass="org.neuro4j.workflow.tutorial.App"
結果:
消息:世界你好!工作流程
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習