首页 课程 师资 教程 报名

实现简单的Java工作流

  • 2022-10-24 10:44:03
  • 3223次 动力节点

本教程展示了如何使用开源 Neuro4j Workflow 创建和运行一个简单的 java 工作流应用程序。工作流框架使您的程序更具可读性和更易于维护,而不会影响性能。

本文使用的技术:

Neuro4j 工作流程 3.4.1

Maven 4.0

Neuro4j Studio 3.0(基于 Eclipse Neon)

JDK 1.8

1.用Maven生成项目结构

发出以下 Maven 命令以创建标准 Java 项目结构。

mvn archetype:generate -DgroupId =org.neuro4j.workflow.tutorial -DartifactId =WorkflowExample 
    		 -DarchetypeArtifactId =maven-archetype-quickstart -DinteractiveMode = false

2. 将项目导入Neuro4j Studio

3. 添加 Neuro4j Workflow 3.3.1 依赖

在 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>

4.自定义块

打开 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 ,消息);
		返回下一个;
	}
}

5. 工作流程

创建工作流

选择包“org.neuro4j.workflow.tutorial”

选择新建工作流向导

将开始节点、自定义节点和结束节点添加到流中

将开始节点重命名为“开始”

选择自定义节点。在属性视图上选择实现类

选择类“org.neuro4j.workflow.tutorial.HelloWorld”

保存流量。

6.客户端java代码

客户端运行工作流的 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 ( "消息:" +消息);      	      		
    	} 其他 {
    		结果. 打印();
    	}
    } 
}

7.运行代码

使用 maven 或 Eclipse 运行代码。

mvn 干净安装
mvn compile exec:java -Dexec.mainClass="org.neuro4j.workflow.tutorial.App"

结果:

消息:世界你好!工作流程

 

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交