Spring - 服务层方法通用与特定

时间:2013-02-21 15:54:35

标签: java spring service layer

我正在开发一个应用程序,我可以看到以下内容:

  • 控制器A:service.getSession(userId,Status.Started);
  • 控制器B:service.getSession(userId,Status.Done);

(其中Status代表可能状态的枚举)

  • 服务:getSession(长期身份,状态);

我发现它不对,因为要访问控制器A的用户具有某些角色,而用户访问B其他用户,应该有2种服务方法:

  • getSessionReady(Long id);
  • getSessionClosed(Long id);

这样做我可以清楚地使用Spring安全性并确保正确的角色访问正确的服务方法。它让我创建了两个方法,但它更容易保护应用程序,服务层的目标是实际限制访问以限制逻辑错误吗?

1 个答案:

答案 0 :(得分:0)

是。您创建服务层(或任何类,实际上)越通用,它添加的值就越少。

您希望服务层限制访问权限,并确保只有有效的调用才能进入域。

另外,更多方法并不是坏事!只要他们有意义,请随意。通常,带有触发不同行为的额外参数的方法是代码气味,应该分开。