第三节:在Sashulin中自定义组件

上一节讲解了如何建立一个业务消息流,流程是由组件构成的。目前SMS提供了General、Database、MessageQueue、Socket、WebService、Http、Internet等系列常用组件,如果不满足业务需求,可以进行自定义组件开发。

一、组件开发

1、建立一个Jar项目

本例使用idear创建一个jar工程,名命为"SashulinComponent"。

2、引用jar文件

项目中引用Sashulin.jar和json-20140107.jar,这两个jar在Sashulin_v2.2.0中的lib目录。

3、新建组件类

组件继承于sashulin.Flows.Component。

package com.xx.comps;import sashulin.AppServer;import sashulin.Flows.Component;
import sashulin.Flows.MessageFlow;
import sashulin.Models.MessageModel;public class SayHello extends Component{public SayHello(MessageFlow msgFlow, MessageModel messageModel) {super(msgFlow, messageModel);}public void execute(){String name = this.properties.getString("name");onMessage("{\"name\":\"hello,\""+name+"}");}
}

组件带自properties变量,保存了在开发环境中定义的属性,如图中的属性都保存在properties中:

4、打包jar

在工程属性配置好输出jar的名称后,再进行整个项目的编译和jar的构建

Rebuild Project编译组件工程,然后通过Build Artifacts构建jar文件,最终生成名为exampleComponent.jar文件。

二、组件安装

1、引用组件

将exampleComponent.jar拷贝到Sashulin_v2.2.0中的lib目录中即可。

2、在SMB中安装组件

在SMB中点击菜单Edit->Components,弹出组件管理窗口:

在左侧树中会显示所有组件。点周某个节点,在右边显示组件的名称、图标、和属性。

新建组件分类,命名为NewGroup1,点击ok即可建立分组:

新建组件:

填好属性后,按Apply进行保存。

三、组件应用

通过组件开发和安装后,那么就可以使用组件了,我们打开第二节中建立的工程csdnProject.epr,在流程编排界面中就看到新加的组件了。

我们把它加入到我们流程中:

保存工程,并点击Deploy部署。然后我们跑起来看看效果吧:

输出的结果是自定义组件中的内容,证明组件开发成功。

例子下载地址:https://download.csdn.net/download/lllllllllluoyi/88931416

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C及C++每日练习(3)

选择题&#xff1a; 1.以下程序的输出结果是&#xff08;&#xff09; #include <stdio.h> main() { char a[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p; int i; i 8; p a i; printf("%s\n", p - 3); } A.6 B. 6789 C. 6 D.789 对于本题&#xff0…

吴恩达机器学习-可选实验室:特征工程和多项式回归(Feature Engineering and Polynomial Regression)

文章目录 目标工具特征工程和多项式回归概述多项式特征选择功能备用视图扩展功能复杂的功能 恭喜! 目标 在本实验中&#xff0c;你将:探索特征工程和多项式回归&#xff0c;它们允许您使用线性回归的机制来拟合非常复杂&#xff0c;甚至非常非线性的函数。 工具 您将利用在以…

2023最新pytorch安装教程,简单易懂,面向初学者(Anaconda+GPU)

一、前言 目前是2023.1.27,鉴于本人安装过程中踩得坑&#xff0c;安装之前我先给即将安装pytorch的各位提个醒&#xff0c;有以下几点需要注意 1.判断自己电脑是否有GPU 注意这点很重要&#xff0c;本教程面向有NVIDA显卡的电脑&#xff0c;如果你的电脑没有GPU或者使用AMD显…

.Net Core/.net 6/.Net 8 实现Mqtt服务器

.Net Core/.net 6/.Net 8 实现Mqtt服务端 Mqtt服务端代码IMqttServer 接口业务类&#xff0c;实现 IMqttServer 接口Program.cs 直接上代码 nuget 引用 MQTTnet Mqtt服务端代码 using MQTTnet; using MQTTnet.Protocol; using MQTTnet.Server;namespace Code.Mqtt {/// <sum…

STM32day3

1.思维导图 1.总结任务的调度算法&#xff0c;把实现代码再写一下 /* Definitions for myTask02 */ osThreadId_t myTask02Handle; uint32_t myTask02Buffer[ 64 ]; osStaticThreadDef_t myTask02ControlBlock; const osThreadAttr_t myTask02_attributes {.name "myTa…

代码随想录算法训练营第三十九天|62.不同路径、63. 不同路径 II

62.不同路径 刷题https://leetcode.cn/problems/unique-paths/description/文章讲解https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84.html视频讲解https://www.bilibili.com/video/BV1ve4y1x7Eu/?vd_sourceaf4853e80f89e28094a5fe1e220d9062 题解&…

react的diff源码

react 的 render 阶段&#xff0c;其中 begin 时会调用 reconcileChildren 函数&#xff0c; reconcileChildren 中做的事情就是 react 知名的 diff 过程 diff 算法介绍 react 的每次更新&#xff0c;都会将新的 ReactElement 内容与旧的 fiber 树作对比&#xff0c;比较出它们…

零基础学习JS--基础篇--索引集合类

数组是由名称和索引引用的值构成的有序列表。 JavaScript 中没有明确的数组数据类型。但是&#xff0c;你可以使用预定义的 Array 对象及其方法来处理应用程序中的数组。Array 对象具有以各种方式操作数组的方法&#xff0c;例如连接、反转和排序。它有一个用于确定数组长度的…

md5绕过

文章目录 \\和\\\md5数组绕过科学计数法绕过双md加密md5碰撞Hash长度攻击 下面会以同一道题给大家演示&#xff1a; (题目来源与nssctf) 和 在php代码中我们会看到和&#xff0c;虽然两个都是表示相等&#xff0c;但是在细节上会有所部区别 &#xff1a;是弱比较&#xff0c;只…

0201安装报错-hbase-大数据学习

1 基础环境简介 linux系统&#xff1a;centos&#xff0c;前置安装&#xff1a;jdk、hadoop、zookeeper&#xff0c;版本如下 软件版本描述centos7linux系统发行版jdk1.8java开发工具集hadoop2.10.0大数据生态基础组件zookeeper3.5.7分布式应用程序协调服务hbase2.4.11分布式…

Sora 作者被曝读博期间仅发表两篇论文,我们是否需要重塑科研价值观?

众所周知&#xff0c;在当今学术界&#xff0c;论文数量和产出速度常常被视为研究者生产力和学术成就的重要标尺。笔者也面试过很多博士生候选人&#xff0c;大家普遍会以自己读博期间发表过10几篇甚至几十篇论文而骄傲&#xff0c;很少有候选人会强调自己读博期间虽然发表论文…

UE5.1_TimeLine

UE5.1_TimeLine 问题引入&#xff1a;UE的Timeline可以在一个场景下无限制的使用多少次&#xff1f;一个动画流程的Timeline的时间持续怎么算?TimeLine中嵌套Timeline的做法是否是合理的&#xff1f;

【数据结构】泛型

文章目录 一、什么是泛型二、引出泛型1、语法 三、泛型类的使用1、语法2、示例3、类型推导(Type Inference) 四、裸类型(Raw Type)五、泛型如何编译的六、泛型的上界1、语法2、示例 七、泛型方法八、通配符九、包装类 一、什么是泛型 一般的类和方法&#xff0c;只能使用具体的…

Matlab|基于目标级联法的微网群多主体分布式优化调度

目录 主要内容 1.1 上层微网群模型 1.2 下层微网模型 部分程序 实现效果 下载链接 主要内容 本文复现《基于目标级联法的微网群多主体分布式优化调度》文献的目标级联部分&#xff0c; 建立微网群系统的两级递阶优化调度模型: 上层是微网群能量调度中心优化调度…

java中的字符串比较(题目作示例)

错误的代码 import java.util.Scanner; public class one {public static void main(String[] args) {Scanner scnew Scanner(System.in);String b"47568";int i0;for ( i 0; i <3; i){String asc.next();if(ab){System.out.println("密码正确&#xff0c;登…

C++ 类的前向声明的用法

我们知道C的类应当是先定义&#xff0c;然后使用。但在处理相对复杂的问题、考虑类的组合时&#xff0c;很可能遇到俩个类相互引用的情况&#xff0c;这种情况称为循环依赖。 例如&#xff1a; class A { public:void f(B b);//以B类对象b为形参的成员函数//这里编译错位&…

在外包公司干了4年,技术退步2年...

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

【Linux】常见的基本指令(中)

在本篇博客中&#xff0c;将会继续介绍Linux的常见的基本指令 一.rmdir指令 rmdir [空文件夹名] 删除空文件夹&#xff08;空目录&#xff09; 二.rm指令 rm [文件名] 删除文件 rm -r 递归删除文件夹&#xff08;目录&#xff09; rm -f 强制…

白话模电:1.绪论与半导体(考研面试常问问题)

一、什么是信号&#xff1f;什么是电信号&#xff1f; 信号反映消息的物理量&#xff0c;电信号是反应电压或电流变化的物理量。 二、什么是模拟信号&#xff1f;什么是数字信号&#xff1f; 模拟信号是时间和数值上均连续的信号&#xff0c;数字信号是时间和数值上均离散的信号…

[HackMyVM]靶场 Zeug

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…