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

如何将spring状态机与嵌套状态机一起使用,spring,state-machine,Spring,State Machine,你好 我刚开始学习spring状态机 我有以下问题 我想知道如何配置使用嵌套状态机的状态机 如何以编程方式(即通过状态机生成器)实现这一点 如何通过纸莎草UML实现这一点 我的第二个问题是如何触发事件,即在到达具有嵌套状态机的状态时。事件如何成为嵌套状态机中的触发器 我的第三个问题是如何通过触发从父状态(即引用嵌套状态机的状态)移动的事件来退出嵌套状态机 到父状态机中的另一个状态 我非常希望能参考一些例子。在学习了javadoc并阅读了一些链接之后 我想出来了 编程的 像往常一样配置父状态机的

你好

我刚开始学习spring状态机

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

如何以编程方式(即通过状态机生成器)实现这一点

如何通过纸莎草UML实现这一点

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

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


我非常希望能参考一些例子。

在学习了javadoc并阅读了一些链接之后

我想出来了

编程的

  • 像往常一样配置父状态机的状态和转换
  • 点击这个链接,看看如何操作

  • 用于引用嵌套状态机的状态。请参阅下面的代码片段
  • 状态“newContactSM”引用嵌套状态机。嵌套状态机 是定义吗

    *

    通过UML实现 只需确保在状态“newContactSM”中引用嵌套状态机即可

    一旦设置完成。您可以正常触发事件。spring状态机处理其余部分

    enter code here
    
    *builder.configureStates()
                .withStates()
                    .initial("contactList2")                
                    .state("newContactSM", newContactSM())
                    .end("end1");*
    
    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 ! ");
            
            
    ........  //
    }
    
    enter code here