如何访问spring StateMachineConfig数据

时间:2019-01-31 09:36:26

标签: java spring spring-statemachine

我有一个弹簧状态机,该状态机配置有一个EnumStateMachineConfigurerAdapter并标有@EnableStateMachineFactory

一切顺利,我可以使用工厂创建状态机:

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.register(MyStateMachineConfig.class);
context.refresh();
StateMachineFactory stateMachineFactory = context.getBean(StateMachineFactory.class);

但是我需要对状态机的配置进行一些自省。基本上,我想获取所有最终状态的列表,以备记录。

此信息在org.springframework.statemachine.config.StateMachineConfig中可用,我可以在调试时告诉它已创建它的实例。但是它似乎没有注册为bean,并且我无法通过调用来访问它:

context.getBean(StateMachineConfig.class);

原因:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.statemachine.config.StateMachineConfig<?, ?>' available

1 个答案:

答案 0 :(得分:1)

您可以注册自己的StateMachineModelVerifier并访问州数据-isEnd()对象上有一个公共的StateData方法。

 {path: 'main', component: OnboardingComponent},