2012-11-23 38 views
0

我正在使用Spring 3.1.1,並且在我的業務邏輯中,我有一個循環,每次迭代都需要一個Spring bean的新實例(原型範圍)。如何動態注入spring bean(原型範圍)

這樣做的最佳方法是什麼?我是否必須創建自己的BeanFactory類,我可以在我的類中注入一次,並且每次根據請求調用它以生成bean時?在查看Spring 3 docs時,似乎暗示應該使用ApplicationContext。但是,使用ApplicationContext使我的代碼Spring依賴。

什麼是這樣的最好的方法? Spring是否已經提供了一種我可以利用的工廠?

+3

一些動態事件怎麼樣[查找方法(HTTP://計算器。 COM /問題/ 7010323)? –

+1

完美。正是我在找什麼。現在我想到了,我記得幾年前使用它,並且不記得它是什麼。 –

回答

0

我想你應該和春天一起去。春天促進您的需求。您可以使用一種方法從應用程序上下文中查找特定類型的bean。所以如果你讓這個bean成爲原型。那麼當你調用這個特殊的方法時,你將返回一個你想要的bean的新實例。

你會發現它indetails here!

+0

當你發現自己發佈了一個以「我認爲你應該去」爲開頭的「答案」時,*發表評論* – drewmoore

+0

我想你錯過了問題的關鍵點,因爲問題是要求一個建議!所以沒有什麼是絕對正確或可用的。根據上下文和有用性,我們必須選擇一種方法!這就是爲什麼答案是這樣開始的!並感謝您的建議! –

1

ApplicationContext工廠。你不必把它注入你的課堂;你實例化一個並用它來創建bean並連接它們的依賴關係。

我不理解評論「使用ApplicationContext使我的代碼依賴於Spring」。是的,它確實。你認爲DI是否值得?

+0

絕對是值得的。但是Spring並不是唯一存在的DI容器。 –

+0

沒有人說過。這個問題特別是關於春天。 – duffymo

+0

Touché。我的想法很明顯,我正在尋找一個獨立於容器的解決方案,但我從來沒有在這個問題上說清楚。 TX。 –

0

您可以使用自定義的範圍,使注射bean代理,並在自定義的範圍豆聽,可以注入下屬代理bean

相關問題