本教程展示了如何使用开源 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"
结果:
消息:世界你好!工作流程
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习