我正在開發一個項目,它意味着定製在Spring 2.5.6(以及其他Spring框架主機)中實現的現有應用程序(JasperServer 3.7.1)。Spring Instantiation和'unused beans'
該應用程序由一系列包含bean定義的applicationContext * .xml組成,這些定義在Spring中連接在一起時將應用程序帶入生活 - 我認爲這是典型的Spring應用程序配置,儘管它是我第一次使用Spring的經驗,所有這些都很好地結合在一起,並遵循了我在網絡和書籍上看到的很多示例。
因爲我實際上正在修改現有應用程序,因此改變了像filterChainProxy這樣的bean(因爲我們有自己的安全模型,例如)我對更改產品附帶的實際配置文件保持警惕 - 相反,如果可能的話,我更願意將額外的appContext配置文件添加到覆蓋現有bean的現有配置文件中(即將原始配置保持原樣,多達p ossible)。
這是我設法通過創建實現BeanFactoryPostProcessor的Bean來實現的,它在bean初始化初始化時允許我將現有屬性值/ bean引用改爲自定義屬性值。這一切似乎工作正常。
我的查詢是說,我有一個bean的屬性引用另一個bean,而我的覆蓋bean改變了對我自己版本的bean的引用,Spring是否仍然實例化不再引用的bean?明顯要求的原因是,其中一些未使用的bean可能佔用了資源,這可能是不必要的開銷。
在此先感謝
這確實回答了這個問題,謝謝。 所以我的問題是,我有豆(如你的例子中的BeanB)躺在什麼都不做,但可能會佔用資源。無論如何,我可以告訴BeanFactory/ApplicationContext刪除這些? – Neil 2010-10-26 12:35:52
@尼爾:只有用無害的東西來重寫它的定義。 – skaffman 2010-10-26 12:51:41