Как я могу избежать круговых зависимостей между двумя видами моделей в приложении Javafx + Spring Boot MVVM?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу избежать круговых зависимостей между двумя видами моделей в приложении Javafx + Spring Boot MVVM?

Сообщение Anonymous »

Я строю приложение Javafx + Spring Boot с использованием шаблона MVVM.
Проблема:
У меня есть два вида:
  • sharedloginviewmodel: manges workflow wation (. /> < /li>
    tokencreationViewModel: управляет логикой создания токенов (например, проверка формы, создание токенов). < /p>
    < /li>
    < /ul>
    SharedloginViewModel. Скажите SharedLoginViewModel для продвижения рабочего процесса.
    Это создает круговую зависимость:

    charedloginviewmodel injects tokencreationVewModel (или vice vers). />Spring throws:
creating bean with name 'sharedLoginViewModel': Requested bean is
currently in creation: Is there an unresolvable circular reference?

What I’ve Пробовал:
1. Прямая инъекция (вызывает круговую зависимость).
2. Весенние события: TokenCreationViewModel Опубликует пользовательское событие, Sharedloginviewmodel слушает. Пользовательский интерфейс:
определил интерфейс loginnavigationservice:

Код: Выделить всё

public interface LoginNavigationService {
void advanceStep();
void cancel();
}
< /code>
sharedloginviewmodel реализует это. < /p>
tokencreationviewmodel инъекции loginnavigationservice вместо Awkward - я не уверен, что это лучшее решение. Хочу:  
Чистый способ отделить эти виды. />  [b] sharedloginviewmodel: < /strong> < /p>
@Component
public class SharedLoginViewModel implements LoginNavigationService {

@Override
public void advanceStep() {
// Advance workflow
}

@Override
public void cancel() {
// Cancel workflow
}
}
tokencreationViewModel: [/b]

Код: Выделить всё

@Component
public class TokenCreationViewModel {

private final LoginNavigationService navigationService;

@Autowired
public TokenCreationViewModel(LoginNavigationService navigationService) {
this.navigationService = navigationService;
}

public void handleTokenCreated() {
navigationService.advanceStep();
}
}
Вопрос:
Является ли подход LoginNavigationService хорошей практикой?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... vafx-sprin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»