Spring 状态机 - 将静态数据附加到状态

2023-12-12

使用 Spring 状态机,我们有状态和事件。我找不到任何关于是否可以在配置期间将静态数据附加到状态的文档。

例如,如果有状态 S1 和 S2

public void configure(StateMachineStateConfigurer<String, String> states) throws Exception  {
    states.withStates()
                .initial("INIT")
                .end("END")
                .state("S1", null, exitAction())
                .state("S2", entryAction());
}

如果我们可以在上述配置期间附加静态数据(例如 java Map),那么它在触发的操作中可能会很有用(如上面的entryAction和exitAction)

我不知道是否可以采取某种方式。


这是通过状态机中的两个对象来实现的 -状态上下文 and 扩展状态.

状态上下文就像状态机的当前快照 - 它在各种方法和回调中传递,包括操作和防护。

扩展状态基本上是一个带有变量的地图。

您可以获得ExtendedState来自StateContext:

    context.getExtendedState()
        .getVariables().put("mykey", "myvalue");

当它作为上下文的一部分传递时,您可以访问ExtendedState在每一个动作、转换、防守等中。 这状态机对象本身也有一个getExtendedState() method.

这是在 StateMachine 中传递静态数据的规范方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring 状态机 - 将静态数据附加到状态 的相关文章

  • 在 Android 上安装 Pocketsphinx

    我对在 Android 手机上安装 Pocketsphinx 有一些疑问 并且我无法在 CMUSphinx 的支持论坛 IRC 现有的 StackOverflow 帖子或大量的 Google 搜索上找到答案 如果这里有人愿意花一分钟时间并愿
  • 使用 Web API 时没有结果

    我正在尝试使用 PHP 从美国邮政服务 USPS 费率计算器中提取 XML 页面 这是我正在使用的代码 当然替换了我的 API 登录名和密码
  • 垂直自动滚动文本视图

    我只是想设置一个简单的 TextView 包裹在 ScrollView 中 它将自动向下滚动显示 TextView 的内容 就像电影显示片尾字幕一样 我不希望用户必须与滚动条交互 屏幕上没有我正在使用的按钮或其他布局 因此制作人员名单填满了
  • 尝试将文件上传到 CKAN 时出错:“无法获取存储上传凭据。上传无法继续”

    当尝试将文件上传到 CKAN 中的数据集时 我在 Web 界面中收到此错误 Failed to get credentials for storage upload Upload cannot proceed 此错误通常是由于 CKAN 的
  • LESS CSS 使用不同的前缀转义整个 CSS 规则?

    我如何避免以下情况 prefix rule prop webkit rule prop moz rule prop o rule prop ms rule prop rule prop 我尝试了很多不同的方法 将其包装在 stuff 将变量
  • 我的 GPU 上的总线程数、块数和网格数。

    For the NVIDIA GEFORCE 940mx GPU Device Query shows it has 3 Multiprocessor and 128 cores for each MP 每个多处理器的线程数 2048 所以
  • 4 点之间的场景套件形状

    鉴于我在上一个问题中采取的路线 ARKit 在 Swift 3 中的平面上的 2 个向量点之间放置一个 SCNPlane 似乎有缺陷 我正在寻找其他选择 我可以在两个节点之间画一条线 然后我可以在这些节点之上创建节点 有效地在一个正方形中
  • 在 C# 中,如何将刷新/重绘消息发送到 WPF 网格或画布?

    如何向 WPF 网格或画布发送刷新消息 换句话说 我注意到在调试模式下 我可以编写代码将一行发送到显示器 然后 如果该行不正确 我可以调整它 但前一行仍然存在 现在 我正在编写的代码根据用户单击的内容将信息发送到显示器 因此 这必定意味着每
  • Instagram API 错误:已达到客户端请求限制

    每当我尝试通过 API 在 Instagram 上关注某人时 无论之前已关注了多少次 我都会收到此错误 meta error type APIError code 400 error message Client request limit
  • 如何从 REST 端点捕获 JsonParseException

    我有一个像这样的端点 POST public Response update MyDocument myDocument 如果请求无效 我的服务器将收到一些很长的日志 如下所示 javax servlet ServletException
  • 继承 - 符号未定义 Objective-C++

    快速问题 这只是我对继承的误解 所以这应该很快就能解决 我正在使用 Objective C 如果问题已经解决了 我会取消这个问题 我找不到它 因此我的帖子 我有以下内容 基础 h文件 ifndef BASE H define BASE H
  • Facebook 注册日期

    如何查找 Facebook 上的注册个人资料的日期 是否可以 我可以通过 API 来做吗 我用谷歌搜索 但找不到解决方案 没有公共途径可以获取此信息 对不起
  • 适配器更新后 ListView 内容被截断

    我的用户界面中有许多垂直堆叠的面板 每个面板都包含一个 ListView 根据用户交互 ListView 中的项目数会更新 我的问题是 如果我增加 ListView 中显示的项目数量 包含面板将不会扩展以显示它们 相反 我的 ListVie

随机推荐

  • Sinon FakeServer 没有请求吗?

    我正在关注SinonJS假服务器教程我正在运行这个简单的代码 var server before function server sinon fakeServer create after function server restore i
  • C# 异常仅在调试时捕获? [复制]

    这个问题在这里已经有答案了 可能的重复 发布模式下的异常处理问题 我怀疑对此有一个非常简单的解释 但我似乎找不到它 当我的 WinForms C 4 0 应用程序将自身加载到 Program cs 文件中时 整个 Main 函数内部都有一个
  • 检测 python 图中的峰值

    我的数据文件在以下链接中共享 我们可以使用以下脚本绘制这些数据 import matplotlib as mpl import numpy as np import matplotlib pyplot as plt import matpl
  • 将数据读入二维数组?

    我正在尝试将数据文件读入二维数组 例如 file dat 1 2 3 a 4 5 6 b 7 8 9 c 我尝试过类似的东西 file open file dat r var var append j for j in i split fo
  • 有某种方法可以处理 ASMX 服务后面的异步/等待吗?

    我有一个 Web 应用程序 提供 JSON 的 WCF REST API 和 ASMX Web 服务 该应用程序已经存在几年了 它基于 ASP NET 2 0 但几年前升级到 NET 4 0 我刚刚升级到 NET 4 5 以便能够使用新的异
  • FFT 需要多少 FLOPS?

    我想知道有多少FLOPS执行快速傅立叶变换 FFT 所以 如果我有一个1的维数数组N浮点数 我想计算这组数字的FFT 有多少FLOPS需要执行吗 我知道这取决于所使用的算法 但是最快的可用算法又如何呢 我还知道 FFT 的缩放比例为N lo
  • 在 R 图形的图例中包含小表格

    我正在绘制按国家 地区分组的公司销售额的点图 所以我的代码是dotchart sales labels company groups country data mydata 我还创建了一个按国家 地区划分的平均销售额表 有什么方法可以将此表
  • laravel 无法为序列化准备路线...。使用闭包

    当我清除 Laravel 5 2 项目中的缓存时 我看到以下错误消息 逻辑异常 无法准备用于序列化的路线 面板 使用闭包 我认为这与路线有关 Route get article slug Front slug 与我的控制器中的特定方法相关联
  • 用于人类友好的相对日期格式的Javascript库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想以人类友好的格式显示一些相对于当前日期的日期 人类友好的相对日期的示例 10 秒前 20 分钟后 1天前 5 周前 2个月前 基本上忠实地保留了
  • 如何以编程方式构建带有表单和用户控件的 System.Web.UI.Page?

    我有这个代码 public static string RenderView string path Page pageHolder new Page UserControl viewControl UserControl pageHold
  • 不使用任何浏览器使用 Selenium

    我一直在尝试使用 Selenium 进行网络自动化 有没有什么方法可以在不实际安装 Chrome 或 Firefox 等浏览器的情况下使用它们 例如使用一些替代选项 或者拥有它们的便携式版本 如果我可以使用便携式版本 我如何告诉 Selen
  • Python2.7 MySQL 连接器在 LOAD DATA LOCAL INFILE 时出错

    我正在尝试使用 Python 和 MySQL Connector 将人口普查数据动态加载到 mysql 数据库 来自 csv 文件 我不明白为什么我会收到错误 Traceback most recent call last File min
  • 如何使用 d3.js 获取父节点的索引

    使用 d3 js 如果我在 比如说 父节点的某个值 x 之后 我会使用 d3 select this parentNode datum x 不过 我想要的是数据 即数据的 索引 建议 Thanks 元素的索引仅在集合中明确定义 当您仅选择单
  • 如何在Apportable中使用CoreData?

    我尝试了完整版本的可移植性 但 CoreData 有问题 我在configuration json中有正确的功能 FEATURES opengles2 landscape prefer external storage write exte
  • 在 React Native 中获取 onPress 按钮的名称

    我有两个按钮 它们都调用相同的 onPress 函数 在回调中 我希望能够区分按下的按钮
  • WCF 服务返回 400 错误请求

    我有这个应用程序可以在本地运行 并且在部署时使用 mdf SQL Express 数据库文件 我通常将其用于测试目的 但是 当我将其更改为与 SQL Server 2008 一起使用时 应用程序可以工作 但服务却不能 例如 如果在页面后面的
  • 警告:imagejpeg() [function:imagejpeg]: gd-jpeg: JPEG 库报告不可恢复的错误

    我的根文件夹中安装了 WordPress 直到昨天它工作正常 但今天它给出了以下错误 我猜生成缩略图图像 Warning imagejpeg function imagejpeg gd jpeg JPEG library reports u
  • 使用 xlsxwriter 将表格从 Word (.docx) 写入 Excel (.xlsx)

    我正在尝试解析表格的单词 docx 然后使用 xlsxwriter 将这些表格复制到 Excel 这是我的代码 from docx api import Document import xlsxwriter document Documen
  • 将大文本插入 blob

    很长一段时间以来 我一直在尝试寻找这个问题的解决方案 但在互联网上却找不到答案 我遇到这种情况 我需要使用 php 从 firebird 数据库插入或更新 blob 字段 子类型 1 问题是 当文本变得非常大 gt 36k 时 它不会执行查
  • Spring 状态机 - 将静态数据附加到状态

    使用 Spring 状态机 我们有状态和事件 我找不到任何关于是否可以在配置期间将静态数据附加到状态的文档 例如 如果有状态 S1 和 S2 public void configure StateMachineStateConfigurer