【发布时间】:2018-04-26 03:08:23
【问题描述】:
我有 maven module_A 服务 rom,我需要调用 module_B 服务。目的是保持耦合最小
Approach1:- 这是我们通常习惯的方法。 module_B 将被注入到 module_A 下,并从 service_A 调用 service_B。 但它将 module_B 与 module_A 紧密耦合。
Approach2:- Spring 事件,例如 this example。使用这种方法,监听器可以在 module_A 中。 例如:- 我需要从 module_B 调用 module_A(EmployeeService.findEmployee(int id))。我能做的是我会创造
EmployeeFinderCustomEvent将包含employeeId。事件将从 module_B 发布。
EmployeeFinderCustomEventListener 将位于 module_A 下并找到该员工。但我需要从监听器返回Employee 对象
应该返回给module_B调用服务。但是onApplicationEvent 返回类型是 void..
@Override
public void onApplicationEvent(EmployeeFinderCustomEvent cse) {
// find employee
}
如何将对象从spring事件监听器返回给调用者以实现松耦合?
【问题讨论】:
标签: java spring decoupling