我想在我的ZK Composer中为通用URL解析创建一个实用Bean。不过,我想确保在Spring管理的Bean中使用诸如Executions.getCurrent()
之类的东西是安全的。我很确定这是因为Executions.getCurrent()
是静态的开始。ZK&Spring - 在Spring Bean中安全使用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
}
}
..used像这样..
@VariableResolver(DelegatingVariableResolver.class)
public MyComposer extends SelectorComposer<Window> {
@WireVariable
public MyUrlBean myUrlBean;
@Override
public void doAfterCompose(Window component) {
MyObject myObject = myUrlBean.getMyObjectFromURL();
// ...
}
}
所以,做事情就这样,一切都应该正常工作或我应该预见用户会话碰撞或类似问题?
春豆是不是静态singletons,是否正确?相反,它们是自动装配的实例类,以节省实际新建对象的计算时间,对吗?如果是这样的话,这样的用户之间肯定不会发生冲突。
无论如何,正如我所提到的,Executions.getCurrent()
是静态的。嗯,这是如何与多个用户访问Web应用程序?
它应该工作,至少它是由ZK正式支持(参见官方文件http://books.zkoss.org/wiki/ZK_Spring_Essentials/Working_with_ZK_Spring/Working_with_ZK_Spring_Core/Using_Custom_ZK_Scopes_For_Spring_Beans)对我来说不够好 – benbai123 2013-02-16 16:52:08