使用spring事件返回对象?

时间:2018-04-26 03:08:23

标签: java spring decoupling

我有maven module_A服务rom,我需要调用module_B服务。意图是保持耦合最小

  1. 方法1: - 这是我们通常习惯的方法。 module_B将在module_A下注入,而call_B将从service_A注入。 但它将module_B与module_A紧密耦合。

  2. 方法2: - this example这样的春季活动。使用此方法,侦听器可以位于module_A中。 例如: - 我需要从module_B调用module_A(EmployeeService.findEmployee(int id))。我能做的就是创造 EmployeeFinderCustomEvent将包含employeeId。活动将从module_B发布。

  3. EmployeeFinderCustomEventListener将位于module_A下并找到该员工。但我需要从侦听器返回Employee对象 应该返回module_B呼叫服务。但onApplicationEvent返回类型无效..

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

    如何将对象从spring事件侦听器返回给调用者以实现松散耦合?

1 个答案:

答案 0 :(得分:0)

应用程序事件无意以这种方式工作。

您可以将EmployeeService接口放在A& A的单独模块中。 B依赖于并在模块A中保持实现(EmployeeServiceImpl或其他)。此解决方案不要求模块B依赖于模块A.