ZK& Spring - 在Spring Bean中使用Executions.getCurrent()是安全的吗?

时间:2013-02-16 15:52:39

标签: spring zk

我想创建一个实用程序Bean,用于在我的ZK编写器中进行常见的URL解析。但是,我想确保在Spring托管Bean中使用Executions.getCurrent()之类的东西是安全的。我很确定它始于Executions.getCurrent()是静态的。

这是我正在考虑的事情......

@Component
public MyUrlBean {

  // TODO I will, of course, program to an interface here =)

  private static final String MY_OBJECT_URL_PARAMETER = "my_obj";

  public MyObject getMyObjectFromURL() {
    Execution ex = Executions.getCurrent();
    String value = ex.getParameter(MY_OBJECT_URL_PARAMETER)
    // ... db fetch and the like
  }

}

..像这样使用..

@VariableResolver(DelegatingVariableResolver.class)
public MyComposer extends SelectorComposer<Window> {

  @WireVariable
  public MyUrlBean myUrlBean;

  @Override
  public void doAfterCompose(Window component) {
    MyObject myObject = myUrlBean.getMyObjectFromURL();
    // ...
  }

}

所以,以这种方式做事,一切正常,还是我应该预测用户会话冲突等问题?

春豆是 NOT 静态单身,对吗?相反,它们是自动装配的实例类,以节省实际新建对象的计算时间,是否正确?如果是这种情况,那么用户之间肯定不会发生冲突。

无论如何,正如我所提到的,Executions.getCurrent()是静态的。嗯,这对多个用户访问webapp有什么作用?

1 个答案:

答案 0 :(得分:0)

是的,这是安全的。

我没有太多的官方消息来链接到这里,但是为了它的价值,我以前的团队几乎在每个页面中使用它(以获取用户上下文)的应用程序服务超过3000个用户在生产中没有记录了两年的问题。