2017-12-02 3 views
0

私はSpring状態マシンを初めて使用しています。私は以下の状態構成を持っています。私は、mysqlでJPAを使用して状態変更を永続化する必要があります。適切な例も私にとって非常に役立ちます。事前に感謝しますSpring StateマシンJPA永続性

@Configuration 
@EnableStateMachine(name = "machine1") 
public class Config extends StateMachineConfigurerAdapter<String, String>{ 

@Override 
public void configure(StateMachineConfigurationConfigurer<String, String> config) throws Exception { 
    config.withConfiguration().autoStartup(true).listener(listener()); 
} 

@Override 
public void configure(StateMachineStateConfigurer<String, String> states) throws Exception { 
    states 
     .withStates() 
      .initial("S1") 
      .state("S1") 
      .state("S2",null,action1()) 
      .state("S3"); 
} 

@Override 
public void configure(StateMachineTransitionConfigurer<String, String> transitions) throws Exception { 
    transitions 
     .withExternal() 
      .source("S1") 
      .target("S2") 
      .event("E1") 
      .and().withExternal() 
      .source("S2") 
      .target("S3") 
      .event("E2"); 
} 

} 

答えて

1

jpa-configは、マシン構成(状態、遷移など)をDBに保持する単なる例です。 configを作成する他の手段(javadslまたはuml)を使用する場合、これは必要ありません。このサポートは、ソースを再度コンパイルせずにマシンコンフィグを変更する方法が必要な人が増えていたために追加されました。私は現在、同じタイプのバネデータリポジトリの抽象化を介してマシンを永続化するためのサポートを追加する作業を行っています。これは1.2.8に移行する必要があります。

いくつかの他のサンプルは、どのように手動で行うことができるいくつかの例です。現在のところ、このプロセスは実際には非常に手作業であり、低レベルであり、やや面倒です。あなたが急いでいない場合は、1.2.xブランチから1.2.8スナップショットを使用することをお勧めします。つまり、新しいサンプルdatajpapersistは、実行時にクリーナーモデルの永続マシンを示しています。

関連する問題