2016-05-05 6 views
1

Einige Abfragen auf Federzustandsmaschine.Dynamisch konfigurierende Federzustandsmaschine

  1. Können wir haben mehr als eine Zustandsmaschine in einem einzigen Feder Projekt, wo in einer Zustandsmaschine dient für einen Arbeitsablauf (kann ein CD-Player Arbeitsablauf sein) und die andere für ein Drehkreuz?

  2. Kann ich dynamisch die Konfiguration in meiner Config-Klasse laden, zum Beispiel aus einer großen Datenquelle JSON-formatierte Daten, die, in denen wir Geschäfte unserer Zustände, Ereignisse, Übergänge usw.

  3. Einer meiner Forderung I kann einen häufig wechselnden Arbeitsfluss oder ein Modell haben, das ich in meinem Frühlingsprojekt konfigurieren muss. Wie kann ich das mit Federzustandsmaschine effektiv machen?

Antwort

1

1) Sie können mehrere Maschinen haben. @EnableStateMachine hat id Eigenschaft für einen Bean-Namen. Sie können die Konfiguration als @EnableStateMachineFactory bereitstellen. Wenn Sie außerhalb von javaconfig arbeiten möchten, gibt es dafür ein manuelles Builder-Modell.

2/3) Es gibt eine öffentliche Konfigurations-API zwischen javaconfig und staticmachine. Ein Benutzer (außerhalb von javaconfig) dieses Konfigurationsmodells ist eine aufml basierte Modellierung, die eclipse's uml xml Datei verwendet, um die Konfiguration zu laden. Uml ist die beste Wahl, da wir momentan keine anderen Konfigurations-Hooks haben. Beiträge willkommen;)

+0

Danke Janne! Können Sie die github-URL für Muster angeben, die ein manuelles Builder-Modell – user2330825

+0

verwendet? Es ist in docs http://docs.spring.io/spring-statemachine/docs/1.1.0.RC1/reference/htmlsingle/#state-machine -via-builder und 'eventservice' Beispiel verwendet es https://github.com/spring-projects/spring-statemachine/blob/master/spring-statamachine-samples/eventservice/src/main/java/demo/eventservice/ StateMachineConfig.java –