Мой сценарий таков: мне нужно реализовать тип проверки авторизации, который будет выполняться в нескольких потоках. Прямо сейчас один из моих потоков выглядит так:
<flow parent="myparent-flow">
<decision-state id="checkAuthorization">
<if test="bean.notAuthorized"
then="redirectToSomePage"
else="view1" />
</decision-state>
<view-state id="view1" />
<!-- ... -->
</flow>
Мне нужно реализовать ту же самую проверку авторизации для ряда потоков, и хотя я могу везде копировать-вставлять одну и ту же логику, мне бы очень хотелось, если возможно, поместить это в сам родительский поток, который уже используется для выполнения некоторой логики при запуске каждого потока.
Проблема здесь в другом классе в состоянии принятия решения. Поскольку это родительский поток для многих подпотоков, он не будет знать имя первого состояния в дочернем потоке. Я хотел бы использовать его как таковой, чтобы он как-то продвигался вперед и выполнял следующее состояние в потоке, которое существует в дочернем потоке. Мое оптимальное решение было бы примерно таким:
<flow> <!-- flow name = myparent-flow -->
<decision-state id="checkAuthorization">
<if test="bean.notAuthorized"
then="redirectToSomeFlow"
else="continueExecutionInChildFlow" />
</decision-state>
<end-state id="redirectToSomeFlow" view="flowRedirect:someFlow" />
</flow>
Затем это будет определено как родительский поток во всех моих потоках, чтобы мне не приходилось дублировать эту логику. Можно ли сделать такое с помощью Spring?