扩展spring的默认组件工厂

时间:2009-07-22 23:32:47

标签: spring factory

这是一个简短的问题:我想修改spring实例化bean的方式(在这种情况下,通过创建代理而不是简单地实例化它)。

我不能使用Jdk Dynamic Proxies和cglib来生成代理(如果是这种情况,我可以使用spring aop)。

在我看来,最好的办法是延长春天的豆子工厂(告诉春天使用我的工厂),但我找不到如何在谷歌上做。

对此有何想法?

编辑:

实际上,看起来最标准的方法是使用BeanPostProcessor(http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/beans/factory/config/BeanPostProcessor.html),并使PostProcessor将bean包装在代理上。

如果我们无法在这里找到更好的解决方案(我们认为这是一个有价值的问题),我会将此作为答案发布。

2 个答案:

答案 0 :(得分:2)

这里的方法是实现BeanPostProcessor(http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/beans/factory/config/BeanPostProcessor.html),并使BeanPostProcessor在'postProcessBeforeInitialization'上将bean包装在代理上。

答案 1 :(得分:-1)

您只需要延长AbstractApplicationContext

这很容易。

我遇到问题的难点在于:如果你不能使用动态代理或CGLIB,你打算用什么方法?

我的建议?别。你想象的“特殊需要”是一个小说,你将无法想出比Rod Johnson已经为你提供的更好的方式。

如果你能发表一个清晰的解释说服我,我会删除我的答案。