Spring Statemachine介绍

云何平
2023-12-01

1、介绍

以下是Spring Statemachine官方文档的定义。Spring Statemachine(SSM)是一个框架,它允许应用程序开发人员在Spring应用程序中使用传统的状态机概念。SSM提供以下功能:

  • 易于使用的平面(一级)状态机,用于简单的用例。
  • 分层状态机结构,以简化复杂的状态配置。
  • 状态机区域提供更复杂的状态配置。
  • 触发器、转换、保护和操作的使用。
  • 类型安全的配置适配器。
  • 状态机事件侦听器。
  • 与Spring IoC集成,将bean与状态机相关联。

2、使用场景

在下列情况下,项目是使用状态机的最佳候选对象:

  • 您可以将应用程序或其部分结构表示为状态。
  • 你想把复杂的逻辑分解成更小的可管理的任务。
  • 应用程序已经遇到了并发问题(例如)异步发生的事情。

在以下情况下,您已经在尝试实现状态机:

  • 使用布尔标志或枚举对情况进行建模。
  • 具有仅对应用程序生命周期的某些部分有意义的变量。
  • 循环通过if-else结构(或者,更糟的是,多个这样的结构),检查是否设置了特定的标志或枚举,然后对存在或不存在标志和枚举的某些组合时如何做进一步的例外。

3、系统要求

Spring Statemachine是用JDK 8(所有工件都兼容JDK 7)和Spring框架构建和测试的。它不需要核心系统中Spring框架之外的任何其他依赖项。

其他可选部分(例如使用分布式状态)依赖于Zookeeper,而状态机示例依赖于spring shell和spring boot,后者将其他依赖性拉到框架本身之外。另外,可选的安全性和数据访问功能与Spring Security和Spring Data有依赖关系。

下表描述了可用于Spring Statemachine的模块。

模块描述

spring-statemachine-core

The core system of Spring Statemachine.

spring-statemachine-recipes-common

Common recipes that do not require dependencies outside of the core framework.

spring-statemachine-kryo

Kryo serializers for Spring Statemachine.

spring-statemachine-data-common

Common support module for Spring Data.

spring-statemachine-data-jpa

Support module for Spring Data JPA.

spring-statemachine-data-redis

Support module for Spring Data Redis.

spring-statemachine-data-mongodb

Support module for Spring Data MongoDB.

spring-statemachine-zookeeper

Zookeeper integration for a distributed state machine.

spring-statemachine-test

Support module for state machine testing.

spring-statemachine-cluster

Support module for Spring Cloud Cluster. Note that Spring Cloud Cluster has been superseded by Spring Integration.

spring-statemachine-uml

Support module for UI UML modeling with Eclipse Papyrus.

spring-statemachine-autoconfigure

Support module for Spring Boot.

spring-statemachine-bom

Bill of Materials pom.

spring-statemachine-starter

Spring Boot starter.

 

 

 

 

 类似资料: