首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将spring状态机与嵌套状态机一起使用

如何将spring状态机与嵌套状态机一起使用
EN

Stack Overflow用户
提问于 2020-10-14 20:46:18
回答 1查看 58关注 0票数 0

日安,

我刚刚开始学习spring状态机。

我有以下问题,我想知道如何配置使用嵌套状态机的状态机。

如何以编程方式,即通过状态机构建器来实现这一点?

如何通过papyrus UML来实现这一点?

我的第二个问题是关于如何触发事件,即在到达具有嵌套状态机的状态时。事件如何成为嵌套状态机中的触发器?

我的第三个问题是如何通过触发从父状态(即引用嵌套状态机的状态)移动到父状态机中的另一个状态的事件来退出嵌套状态机。

如果能引用一些例子,我会非常感激。

EN

回答 1

Stack Overflow用户

发布于 2020-10-15 19:13:34

在研究了javadoc并阅读了一些链接之后

https://github.com/spring-projects/spring-statemachine/issues/121

我想通了。

以编程方式

  1. 像往常一样配置父状态机的状态和转换

https://www.baeldung.com/spring-state-machine

点击这个链接,看看是怎么做的。

引用嵌套状态机的状态的

  1. 。请参阅以下代码片段

……

代码语言:javascript
复制
enter code here

*builder.configureStates()
            .withStates()
                .initial("contactList2")                
                .state("newContactSM", newContactSM())
                .end("end1");*

……

状态"newContactSM“引用嵌套状态机。定义嵌套状态机

……

*

代码语言:javascript
复制
public StateMachine<String, String> newContactSM() throws Exception
    {
        
         logger.info(" ------  newContactSM() -------- ");
         
         
        // checkCurrentFlow();
        
        Builder<String, String> builder = StateMachineBuilder.builder();
        
        builder.configureConfiguration().withConfiguration().machineId("newContactBTF");
        
        logger.info(" configure states ..");   
        
        builder.configureStates()
            .withStates()
                .initial("newContact")
                .end("end2")           
                .states(new HashSet<String>(Arrays.asList("otherContact")));   // (Arrays.asList("S1", "S2", "S3")));
        
        logger.info(" states configured ! ");
        
        
........  //
}

代码语言:javascript
复制
enter code here

……

要通过统一建模语言来实现,只需确保在状态"newContactSM“中引用嵌套状态机。

一旦设置完成。您可以像往常一样触发事件。spring状态机处理剩下的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64353577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档