我想在我的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