是否可以將spring bean注入由調度程序作業控制的輪詢過濾器類(FClass)中? 我不太明白單身人士在這裏如何應用。將彈簧豆注入非單例類
我明白spring bean是singleton,所以爲了將Spring bean注入到類FClass中。我需要將FClass定義爲一個bean並添加DI作爲屬性等。
那麼如何知道FClass是否應該是單例?我假設只有單身人士的課程可以創建,並且可以爲他們完成DI。
我的問題是:
我需要能夠注入我的門面豆xfacade到FCLASS。 x_facacde處理dao對象。它將Y_dao和一個Z_hibernate會話bean作爲DI注入。
當我試圖創建一個StatusPollingFilter(FClass)的spring bean並注入了facade bean時 - 我得到了一個null,並且setter從來沒有被調用在調試模式下注入。
問題: 我認爲這可能與StatusPollingFilter的線程/調度程序性質有關,並且由於spring bean是單例,因此可能無法正常工作。
我正在考慮爲StatusPollingFilter(FClass)創建一個工廠。但需要知道這是否是正確的事情,並且在我做了太多工作之前我正在正確的軌道上,並且意識到即使這不起作用,因爲問題可能在其他地方。理想情況下,我只想以最簡單的方式更新表格。但我必須使用休眠作爲DAO存在,但休眠配置使用
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
with /hibernate/TopoObject.hbm.xml
文件。
因此,無論我如何嘗試這個,我總是會在會話或注入的外觀bean上得到空指針異常。 在這裏讀取QA的一些看起來像是因爲StatusPollingFilter是使用調度程序實例化的,而不是彈出它不能意識到DI bean。所以上面的工廠模式在這裏有幫助。
我可能有一個額外的問題,但我會穿過那座橋,當我來到它。但只是簡單地提一下,如果有人知道我可能碰到的問題......不知道調度程序如何調用實例的工廠,因爲它全部由第三方api控制 - 它調用StatusPollingFilter,但我'假設我是否通過了工廠作爲班級和參數,它會發現它的路徑......但最初的部分是主要問題。請忽略後者華夫餅。提前致謝。
我想我理解單身人士問題更好閱讀更多的職位。但如果我錯了,請糾正我。也就是說,在任何給定的時間,如果有多於一個類的實例,那麼它不能是單例,在我的情況下,輪詢器會爲正在嘗試輪詢的每個對象運行預定線程。這個班級會有很多例子存在。所以我不能創建一個bean - 對嗎?但是我後來得不到的是,我的DAO對象將是一個bean,但也會有很多這樣的實例...那麼怎麼才能像spring bean一樣存在呢?對不起...還是輸了? – user2144209 2013-03-13 19:26:21