Spring ApplicationContext.getBean (Класс c )не работает для прокси-классов

Мне нужно искать бобы по типу их класса. Когда bean-компоненты были упакованы прокси (, некоторые методы являются @Transactional)-ApplicatoinContext не может их найти. Я обнаружил, что если я ищу их через интерфейс, это работает, но в этом случае я работаю с конкретным типом класса. Я знаю, что bean-компонент относится к тому типу, который я ищу, но метод getBean ()терпит неудачу.

Я могу отладить (и исправить )проблему в коде Spring AbstractBeanFactory. Проблема в том, что он сравнивает тип beanInstance с типом, который я запрашиваю, но beanInstance.getClass ()является прокси. AbstractBeanFactory должен компенсировать это и сравнить тип с целевым классом прокси.

У меня есть исправление для этого, но я не особенно хочу использовать исправленную версию Spring, и я подозреваю, что должно быть что-то, что я могу настроить, чтобы это заработало, или это действительно ошибка?

8
задан Alex Worden 18 July 2012 в 06:33
поделиться