我正在开发一个项目,它意味着定制在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