我有maven module_A服务rom,我需要调用module_B服务。意图是保持耦合最小
方法1: - 这是我们通常习惯的方法。 module_B将在module_A下注入,而call_B将从service_A注入。 但它将module_B与module_A紧密耦合。
方法2: - 像this example这样的春季活动。使用此方法,侦听器可以位于module_A中。
例如: - 我需要从module_B调用module_A(EmployeeService.findEmployee(int id))。我能做的就是创造
EmployeeFinderCustomEvent
将包含employeeId
。活动将从module_B发布。
EmployeeFinderCustomEventListener
将位于module_A下并找到该员工。但我需要从侦听器返回Employee
对象
应该返回module_B
呼叫服务。但onApplicationEvent
返回类型无效..
@Override
public void onApplicationEvent(EmployeeFinderCustomEvent cse) {
// find employee
}
如何将对象从spring事件侦听器返回给调用者以实现松散耦合?
答案 0 :(得分:0)
应用程序事件无意以这种方式工作。
您可以将EmployeeService
接口放在A& A的单独模块中。 B依赖于并在模块A中保持实现(EmployeeServiceImpl
或其他)。此解决方案不要求模块B依赖于模块A.