У меня есть сервис maven module_A, где мне нужно вызвать сервис module_B.Намерение состоит в том, чтобы сохранить минимум сцепления
Подход 1: - Это подход, к которому мы обычно привыкли.module_B будет введен в соответствии с module_A и вызовом service_B из service_A.Но он тесно связывает module_B с module_A.
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
}
Как я могу вернуть объект от слушателя события пружины вызывающей стороне для достижения слабой связи?