2013-02-16 39 views
1

我想在我的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應用程序?

+1

它應該工作,至少它是由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

回答

0

是的,它是安全的。

我沒有太多的官方消息來源可以鏈接到這裏,但爲了什麼值得,我以前的團隊幾乎在每個頁面(獲取用戶上下文)中都使用這個應用程序,爲生產中的3000多個用戶提供服務兩年內沒有記錄問題。

+0

,感謝他們服用有時間回答 – 2013-02-28 13:34:53