0

StateMachineを使用した動的インスタンス化のためのいくつかの構成を含めたいと思いますStateMachineFactory。ただし、@EnableStateMachineFactory注釈により、ファクトリに名前を付けることができます。各構成にどのように名前を付けますか (つまり、拡張しますEnumStateMachineConfigurerAdapter)?

setMachineIDそれ以外の場合は、可能であれば、構成定義内でメソッドを使用する方法の例があると便利です。

4

1 に答える 1

4

enableSpring `@Configuration' クラスでこれらのアノテーションを使用すると、アプリケーション コンテキストに登録される Bean 名を定義するだけです。例で説明するのが最も簡単です:

@EnableStateMachine

StateMachine豆としてstateMachine

@EnableStateMachine(name = "fooMachine")

StateMachine豆としてfooMachine

@EnableStateMachine(name = {StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, "fooMachine"})

StateMachinestateMachineBean エイリアスを持つ BeanとしてfooMachine

@EnableStateMachineFactory

StateMachineFactory豆としてstateMachineFactory

@EnableStateMachineFactory(name = "fooMachineFactory")

StateMachineFactory豆としてfooMachineFactory

@EnableStateMachineFactory(name = {StateMachineSystemConstants.DEFAULT_ID_STATEMACHINEFACTORY, "fooMachineFactory"})

StateMachineFactorystateMachineFactoryBean エイリアスを持つ BeanとしてfooMachineFactory

それ以外は@Configuration(StateMachineConfigurerAdapter を拡張する) クラスの名前は重要ではありません。@ConfigurationSpring では、クラスも bean として作成され、以下のクラスが Spring Application Context に bean として存在すると考えられますmyConfig.MachineFactoryConfig。不適切な名前のクラスは Bean オーバーライドをもたらす可能性があるため、Spring で覚えておくべきことは 1 つだけです。

public class MyConfig {
  @Configuration
  @EnableStateMachineFactory
  public static class MachineFactoryConfig extends StateMachineConfigurerAdapter<String, String> {
  }
}

machineIddocs State Machine IDに新しいセクションを追加しました。(次のリリースが出るまでのスナップショット ビルドのみ)

于 2016-12-10T13:04:48.837 に答える