我是新春暖花開。新的春天:加載應用程序上下文
所以在我的應用程序遠,每次我需要使用一個bean時我加載XML。
ApplicationContext context = new ClassPathXmlApplicationContext(「applicationContext.xml」);
所以,在每一個類,我需要加載特定的bean我使用上述行。
在效率或正確使用方面,我想知道這是否正確使用(我懷疑它不是),或者如果上下文應該作爲參數傳遞,每當一個類需要它時。
謝謝
我是新春暖花開。新的春天:加載應用程序上下文
所以在我的應用程序遠,每次我需要使用一個bean時我加載XML。
ApplicationContext context = new ClassPathXmlApplicationContext(「applicationContext.xml」);
所以,在每一個類,我需要加載特定的bean我使用上述行。
在效率或正確使用方面,我想知道這是否正確使用(我懷疑它不是),或者如果上下文應該作爲參數傳遞,每當一個類需要它時。
謝謝
我假設你在非web應用程序中使用Spring。
如果您在每次需要檢索bean時都創建新的應用程序上下文,那實際上並不是正確的解決方案。每個應用程序應該創建一次應用程序上下文
因此,解決方案將建議您將應用程序上下文實例傳遞給需要它的類,否則將確保您在應用程序中使用相同的實例。
您當前設置可能遇到的許多問題之一是bean範圍界定問題。 Spring有singleton bean,但是這些都是singleton,只能在一個應用程序上下文中使用。所以,如果你檢索豆是從兩個不同的應用場景下單,他們不會是相同的實例。其他問題將涉及性能,因爲應用程序上下文創建將是昂貴的操作。
如果您使用的春天,那麼你應該在任何地方使用它。因此,與其周圍路過的應用程序上下文,把每豆在那裏,讓Spring連接點爲您服務。
簡而言之,絕不要自己撥打new
。改爲向Spring請求Spring。如果一個bean有依賴關係,請使用構造函數注入。
這樣,春天可以創造一切豆你,將它們連接起來,無需你不必擔心那裏出現一些這樣的形式回到完全正常的情況下。
您還應該閱讀有關Java-based container configuration的文章。
相關的主題文章:
顯然事實並非如此。除非你想遇到的性能問題,內存問題,奇怪的交易問題等,你只需構建一次,如果需要玉豆在使用依賴注入。 – 2014-11-25 12:32:17
除非有特別原因需要使用XML配置春天,我建議您嘗試得到一個什麼樣的Spring應用程序看起來像由以下的入門指南味道:http://projects.spring.io/spring-framework/#quick-start – mrlem 2014-11-25 13:37:07