这是一个简短的问题:我想修改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包装在代理上。
如果我们无法在这里找到更好的解决方案(我们认为这是一个有价值的问题),我会将此作为答案发布。
答案 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已经为你提供的更好的方式。
如果你能发表一个清晰的解释说服我,我会删除我的答案。