2016-12-07 2 views
0

Я хотел бы включить несколько конфигураций StateMachine для динамического создания экземпляра с помощью StateMachineFactory. Но аннотация @EnableStateMachineFactory позволяет назвать фабрику. Как называется каждый Config (т. Е. Который расширяет EnumStateMachineConfigurerAdapter)?Spring StateMachine Конфигурация: Именование StateMachine при использовании @EnableSateMachineFactory

В противном случае было бы полезно иметь пример использования метода setMachineID в определении конфигурации, если это возможно.

+0

Если у вас встроенный код, отметьте его обратными окнами ('\' '). Это поможет сделать ваш вопрос более читаемым. – Chris

ответ

2

Имея эти аннотации enable с помощью классов Spring `@Configuration ', просто определяйте имена компонентов, которые регистрируются в контексте приложения. Самый легкий объяснил с примерами:

@EnableStateMachine 

StateMachine, как фасоль stateMachine.

@EnableStateMachine(name = "fooMachine") 

StateMachine, как фасоль fooMachine.

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

StateMachine, как фасоль stateMachine с бобовой псевдонимом fooMachine.

@EnableStateMachineFactory 

StateMachineFactory, как фасоль stateMachineFactory.

@EnableStateMachineFactory(name = "fooMachineFactory") 

StateMachineFactory, как фасоль fooMachineFactory.

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

StateMachineFactory, как фасоль stateMachineFactory с бобовой псевдонимом fooMachineFactory.

Помимо этого, класс @Configuration (который расширяет StateMachineConfigurerAdapter) не имеет значения. Мысль весной a @Configuration класс также создается как bean, что означает, что нижеприведенный класс будет существовать в Spring Application Context как bean myConfig.MachineFactoryConfig. Только одна вещь, которую нужно помнить весной, так как плохо названный класс может привести к замене bean!

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

Что приходит machineId я просто добавил новый раздел DOCS State Machine ID. (Только в создании моментальных снимков, пока мы не получим следующий выпуск)

Смежные вопросы