Вернуть объект с весенними событиями? - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть сервис maven module_A, где мне нужно вызвать сервис module_B.Намерение состоит в том, чтобы сохранить минимум сцепления

  1. Подход 1: - Это подход, к которому мы обычно привыкли.module_B будет введен в соответствии с module_A и вызовом service_B из service_A.Но он тесно связывает module_B с module_A.

  2. Approach2: - События Spring, такие как в этом примере .При таком подходе слушатель может быть в module_A.Например: - мне нужно вызвать module_A (EmployeeService.findEmployee (int id)) из module_B.Я могу создать EmployeeFinderCustomEvent, который будет содержать employeeId.Событие будет опубликовано из module_B.

EmployeeFinderCustomEventListener будет лежать под модулем_A и найдет сотрудника.Но мне нужно вернуть Employee объект из слушателя, который должен быть возвращен module_B вызывающей службе.Но onApplicationEvent возвращаемый тип недействителен.

     @Override
        public void onApplicationEvent(EmployeeFinderCustomEvent cse) {
            // find employee
        }

Как я могу вернуть объект от слушателя события пружины вызывающей стороне для достижения слабой связи?

1 Ответ

0 голосов
/ 26 апреля 2018

События приложения не предназначены для такой работы.

Вы можете поместить EmployeeService интерфейс в отдельный модуль, от которого зависят как A & B, так и сохранить реализацию (EmployeeServiceImpl или любую другую) в модуле A. Это решение не требует, чтобы модуль B зависел от модуля A.

...