【发布时间】:2012-07-17 03:26:36
【问题描述】:
我需要通过它们的类类型来查找 bean。当 bean 被代理包装时(某些方法是 @Transactional)- ApplicatoinContext 找不到它们。我发现如果我通过接口查找它们,它可以工作,但在这种情况下,我正在使用具体的类类型。我知道 bean 是我正在寻找的类型,但是 getBean() 方法失败了。
我可以在 Spring 的 AbstractBeanFactory 代码中调试(并修复)问题。问题是它会根据我请求的类型检查 beanInstance 的类型,但 beanInstance.getClass() 是代理。 AbstractBeanFactory 应该对此进行补偿并将类型与代理的目标类进行比较。
我对此有一个修复,但我并不想使用 Spring 的补丁版本,我怀疑我必须配置一些东西才能使其正常工作,或者这真的是一个错误吗?
【问题讨论】:
标签: java spring proxy applicationcontext