当前位置: 首页 > news >正文

数字媒体应用 网站开发wordpress付款后可见

数字媒体应用 网站开发,wordpress付款后可见,程序开发培训,网站建设结构总结一、什么是状态机 状态机#xff0c;又称有限状态自动机#xff0c;是表示有限个状态以及在这些状态之间的转移和动作等行为的计算模型。状态机的概念其实可以应用的各种领域#xff0c;包括电子工程、语言学、哲学、生物学、数学和逻辑学等#xff0c;例如日常生活中的电…一、什么是状态机 状态机又称有限状态自动机是表示有限个状态以及在这些状态之间的转移和动作等行为的计算模型。状态机的概念其实可以应用的各种领域包括电子工程、语言学、哲学、生物学、数学和逻辑学等例如日常生活中的电梯、风扇、门闸机等都会涉及到多种状态随着动作的执行会进行状态的转移而在软件编程领域采用状态机的思路同样可以简化我们的设计流程会使代码的可读性和可维护性得到增加。 目前用的比较多的开源状态机如Spring StateMachine、Squirrel StateMachine以及阿里开源一款轻量的Cola-StateMachine本文主要介绍Spring的状态机的使用。 二、Spring状态机的核心概念 transition转换是原状态和目标状态之间的关系用于将状态机从一种状态转移到另一种状态source节点的当前状态target节点的目标状态event触发节点从当前状态到目标状态的动作如从State A 到 State Bguard也叫“门卫”当事件请求触发时可以定义校验规则用于校验是否可以执行后续actionaction用于实现当前节点对应的业务逻辑事件发生之后系统做出的反应withChoice当执行一个动作可能导致多种结果时可以选择使用choiceguard来跳转withInternal我们支持三种不同类型的转换externalinternal和local。转换时通过信号触发的该信号是发送到状态机的事件或计时器 三、Spring状态机使用示例 Spring StateMachine 是 Spring 官方提供的状态机实现。其核心组件如下 StateMachine状态机实例可以触发事件、执行状态转换并获取当前状态等信息StateMachineStateConfigurer用于配置状态定义状态机中的各种状态并指定每个状态的行为和属性StateMachineTransitionConfigurer用于配置状态之间的转换关系定义转换的触发事件、源状态、目标状态以及转换的条件和动作StateMachineConfigurationConfigurer状态机系统配置用于配置状态机的全局属性和行为包括状态机的执行模式、并发策略、监听器等StateMachineListenerAdapter事件监听器用于简化状态机事件监听器StateMachineEventListener的实现 这里还是以抽奖奖励状态转换为例奖励的状态转换图如下 环境准备 dependencygroupIdorg.springframework.statemachine/groupIdartifactIdspring-statemachine-starter/artifactIdversion2.5.0/version/dependency定义奖励状态以及事件的枚举类 public enum AwardState {INACTIVE, ACTIVE, PAUSE, FINISH }public enum AwardEvent {AUTO_ACTIVATE, AUTO_FINISH, FINISH, PAUSE, RESUME }状态机配置类 Configuration EnableStateMachine public class AwardStateMachineConfig extends EnumStateMachineConfigurerAdapterAwardState, AwardEvent {Autowiredprivate AwardStateMachineListener awardStateMachineListener;Overridepublic void configure(StateMachineStateConfigurerAwardState, AwardEvent states) throws Exception {states.withStates().initial(AwardState.INACTIVE).states(EnumSet.allOf(AwardState.class));}Overridepublic void configure(StateMachineTransitionConfigurerAwardState, AwardEvent transitions) throws Exception {transitions.withExternal().source(AwardState.INACTIVE).target(AwardState.ACTIVE).event(AwardEvent.AUTO_ACTIVATE).and().withExternal().source(AwardState.INACTIVE).target(AwardState.FINISH).event(AwardEvent.AUTO_FINISH).and().withExternal().source(AwardState.ACTIVE).target(AwardState.FINISH).event(AwardEvent.FINISH).and().withExternal().source(AwardState.ACTIVE).target(AwardState.PAUSE).event(AwardEvent.PAUSE).and().withExternal().source(AwardState.PAUSE).target(AwardState.ACTIVE).event(AwardEvent.RESUME).and().withExternal().source(AwardState.PAUSE).target(AwardState.FINISH).event(AwardEvent.FINISH);}Overridepublic void configure(StateMachineConfigurationConfigurerAwardState, AwardEvent config) throws Exception {config.withConfiguration().autoStartup(true).listener(awardStateMachineListener);} }状态机监听器 Component public class AwardStateMachineListener extends StateMachineListenerAdapterAwardState, AwardEvent {Overridepublic void transition(TransitionAwardState, AwardEvent transition) {System.out.println(状态转移 from transition.getSource().getId() to transition.getTarget().getId());}/*Overridepublic void stateChanged(StateAwardState, AwardEvent from, StateAwardState, AwardEvent to) {System.out.println(状态改变 from from.getId() to to.getId());}*/ }奖励服务类 Service public class AwardStateMachineService {Resourceprivate StateMachineAwardState, AwardEvent stateMachine;public void autoActivate() {stateMachine.sendEvent(AwardEvent.AUTO_ACTIVATE);}public void autoFinish() {stateMachine.sendEvent(AwardEvent.AUTO_FINISH);}public void finish() {stateMachine.sendEvent(AwardEvent.FINISH);}public void pause() {stateMachine.sendEvent(AwardEvent.PAUSE);}public void resume() {stateMachine.sendEvent(AwardEvent.RESUME);}}测试 SpringBootTest class AwardStatemachineApplicationTests {Autowiredprivate AwardStateMachineService awardStateMachineService;Autowiredprivate StateMachineAwardState, AwardEvent stateMachine;Testvoid awardStageTest() {// 发送事件自动激活抽奖awardStateMachineService.autoActivate();// 检查状态是否变为ACTIVEassert (stateMachine.getState().getId() AwardState.ACTIVE);// 发送事件暂停抽奖awardStateMachineService.pause();// 检查状态是否变为PAUSEassert (stateMachine.getState().getId() AwardState.PAUSE);// 发送事件恢复抽奖awardStateMachineService.resume();// 检查状态是否变为ACTIVEassert (stateMachine.getState().getId() AwardState.ACTIVE);// 发送事件结束抽奖awardStateMachineService.finish();// 检查状态是否变为FINISHassert (stateMachine.getState().getId() AwardState.FINISH);}}测试执行结果 可以看到 Spring 状态机很好的控制了奖励状态之间的流转。 总结本文主要介绍了Spring状态机的一些基本概念以及状态流转的使用方式Spring状态机一些高级的用法如状态的持久化、状态的并行parallelforkjoin、子状态机等会在后面文章更新。 参考 https://docs.spring.io/spring-statemachine/docs/2.0.2.RELEASE/reference/htmlsingle/#glossary
文章转载自:
http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn
http://www.morning.plqkz.cn.gov.cn.plqkz.cn
http://www.morning.yqtry.cn.gov.cn.yqtry.cn
http://www.morning.gjfym.cn.gov.cn.gjfym.cn
http://www.morning.pghry.cn.gov.cn.pghry.cn
http://www.morning.kbbmj.cn.gov.cn.kbbmj.cn
http://www.morning.ccyns.cn.gov.cn.ccyns.cn
http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn
http://www.morning.qyrnp.cn.gov.cn.qyrnp.cn
http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn
http://www.morning.bwqcx.cn.gov.cn.bwqcx.cn
http://www.morning.zyffq.cn.gov.cn.zyffq.cn
http://www.morning.qswws.cn.gov.cn.qswws.cn
http://www.morning.rpkg.cn.gov.cn.rpkg.cn
http://www.morning.qkrqt.cn.gov.cn.qkrqt.cn
http://www.morning.vibwp.cn.gov.cn.vibwp.cn
http://www.morning.pfgln.cn.gov.cn.pfgln.cn
http://www.morning.chmkt.cn.gov.cn.chmkt.cn
http://www.morning.kqbwr.cn.gov.cn.kqbwr.cn
http://www.morning.yfddl.cn.gov.cn.yfddl.cn
http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn
http://www.morning.eshixi.com.gov.cn.eshixi.com
http://www.morning.5-73.com.gov.cn.5-73.com
http://www.morning.mgzjz.cn.gov.cn.mgzjz.cn
http://www.morning.ggnrt.cn.gov.cn.ggnrt.cn
http://www.morning.mknxd.cn.gov.cn.mknxd.cn
http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn
http://www.morning.mstbbs.com.gov.cn.mstbbs.com
http://www.morning.bytgy.com.gov.cn.bytgy.com
http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn
http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn
http://www.morning.nkyc.cn.gov.cn.nkyc.cn
http://www.morning.qpnb.cn.gov.cn.qpnb.cn
http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn
http://www.morning.mmplj.cn.gov.cn.mmplj.cn
http://www.morning.dnconr.cn.gov.cn.dnconr.cn
http://www.morning.yqqxj26.cn.gov.cn.yqqxj26.cn
http://www.morning.lmzpk.cn.gov.cn.lmzpk.cn
http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn
http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn
http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn
http://www.morning.fkyrk.cn.gov.cn.fkyrk.cn
http://www.morning.tkrpt.cn.gov.cn.tkrpt.cn
http://www.morning.lqjpb.cn.gov.cn.lqjpb.cn
http://www.morning.zqybs.cn.gov.cn.zqybs.cn
http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn
http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn
http://www.morning.tdfyj.cn.gov.cn.tdfyj.cn
http://www.morning.zljqb.cn.gov.cn.zljqb.cn
http://www.morning.feites.com.gov.cn.feites.com
http://www.morning.bfbl.cn.gov.cn.bfbl.cn
http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn
http://www.morning.pgmyn.cn.gov.cn.pgmyn.cn
http://www.morning.qkcyk.cn.gov.cn.qkcyk.cn
http://www.morning.hqwxm.cn.gov.cn.hqwxm.cn
http://www.morning.wgbsm.cn.gov.cn.wgbsm.cn
http://www.morning.xgcwm.cn.gov.cn.xgcwm.cn
http://www.morning.qrsrs.cn.gov.cn.qrsrs.cn
http://www.morning.jbmsp.cn.gov.cn.jbmsp.cn
http://www.morning.dxsyp.cn.gov.cn.dxsyp.cn
http://www.morning.qwhbk.cn.gov.cn.qwhbk.cn
http://www.morning.tplht.cn.gov.cn.tplht.cn
http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn
http://www.morning.ngcth.cn.gov.cn.ngcth.cn
http://www.morning.qhln.cn.gov.cn.qhln.cn
http://www.morning.rtbhz.cn.gov.cn.rtbhz.cn
http://www.morning.zxcny.cn.gov.cn.zxcny.cn
http://www.morning.deanzhu.com.gov.cn.deanzhu.com
http://www.morning.pbtdr.cn.gov.cn.pbtdr.cn
http://www.morning.chbcj.cn.gov.cn.chbcj.cn
http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn
http://www.morning.fpjw.cn.gov.cn.fpjw.cn
http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn
http://www.morning.rxfgh.cn.gov.cn.rxfgh.cn
http://www.morning.zknxh.cn.gov.cn.zknxh.cn
http://www.morning.xbptx.cn.gov.cn.xbptx.cn
http://www.morning.pfnrj.cn.gov.cn.pfnrj.cn
http://www.morning.qcbhb.cn.gov.cn.qcbhb.cn
http://www.morning.tnthd.cn.gov.cn.tnthd.cn
http://www.morning.qkxt.cn.gov.cn.qkxt.cn
http://www.tj-hxxt.cn/news/239227.html

相关文章:

  • h5生成app杨和关键词优化
  • 用html做网站的心得体会宁波网站建设公司信息查询
  • 网站悬浮广告代码盗版电影网站建设成本
  • 黄冈网站建设哪家便宜商业空间设计风格
  • 网站建设重庆公司哪个网站可以上传设计的作品
  • 公司网站模板中英文seo网站做推广
  • 电商网站是什么意思东莞常平镇邮政编码
  • 北京住房和城乡建设部网站网站备案名称规则
  • 网站建设饣首选金手指北京logo设计
  • 专业手机网站建设哪家好企业微网站开发
  • 南京市建筑工程网站四川省住房和城乡建设厅网站首页
  • 正能量网站地址链接免费搜网站首页不见了seo
  • 网站制作公司兴田德润i在哪里电商运营是做什么的
  • 免费物业网站模板wordpress禁止谷歌
  • 云南建设厅官方网站建设部网站核对编号
  • 云南网站建设一度科技公司word期刊排版模板
  • 大足网站建设海淀区企业网站建设
  • 奥远网站建设流程wordpress 主题选项
  • 织梦网站后台进不去北京工作室网站建设
  • 常州市天宁区建设局网站电商网站的功能有哪些
  • 创可贴设计网站官网阜新百姓网免费发布信息
  • 如何让网站显示404公司创建
  • 做招聘网站怎么运作什么网站可以看到绵阳建设
  • 北京网站排名seowordpress商城功能
  • 珠海图远建设公司网站太原建站模板
  • 广州网站建设 超凡科技天津网站建设业务
  • 网站的数据库是什么定制公交app下载
  • 物流网站开发下沙做网站的公司
  • 辽宁城建设计院有限公司网站建工e采网
  • 潍坊住房和城乡建设部网站域名解析 别人网站