2015-11-19 4 views
0

Весной Statemachine reference doc этот пример кода:Получить StateContext в @OnTransition аннотированный метод

@WithStateMachine 
static class Bean1 { 

    @OnTransition(source = "S1", target = "S2") 
    public void fromS1ToS2() { 
    } 
} 

Можно ли получить доступ к StateContext объект из метода с аннотацией @OnTransition? Возможно, я не понимаю правильного использования аннотации ... Я думал, что он может использоваться аналогично Action, где я мог бы получить доступ к данным, хранящимся в ExtendedState.

ответ

1

Кажется, что я полностью забыл добавить эту конкретную информацию в наши документы. Мы не можем получить доступ к StateContext, но доступны event headers и ExtendedState.

Для этого в модуле MethodAnnotationTests.

Короткий рассказ о том, что метод обработки процессора вызывает обнаружение типов аргументов ExtendedState и Map, если он аннотируется @EventHeaders. Я также думал поддерживать StateContext таким же образом с помощью аргументов метода, но пока не получил этого.

@WithStateMachine 
public class Bean2 { 

    @OnTransition(source = "S1", target = "S2") 
    public void method1(@EventHeaders Map<String, Object> headers, ExtendedState extendedState) { 
    } 

} 

Я также получу документы для этого, THX для указания этого!

+0

Спасибо за быстрый ответ! В следующий раз я рассмотрю тесты и исходный код. Меня интересовал 'StateContext' как способ добраться до' ExtendedState', так что это прекрасно. Существуют ли планы дополнительных аннотаций, может быть, что-то вроде '@ OnStateEnter' и' @ OnStateExit'? – Paul

+0

Ну, да, другие аннотации - неплохая идея. Возможно, следует создать аналогичные аннотации, соответствующие функциональности из событий StateMachineListener и контекстных приложений. Я создам для них проблемы gh. –

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