从Spring应用程序上下文获取bean时的ClassCastException,但在自动装配时不是

时间:2011-04-14 22:10:10

标签: java spring casting

我没有得到这个,我有一个典型的messageSource

<bean id="resource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames">
        <list>
            <value>content.Language</value> 
        </list>
    </property>
</bean>

我可以像

那样得到它
@Autowire protected MessageSource resource;

但是当我尝试从应用程序上下文中将其转换为MessageSource时,我得到了一个强制转换异常

自动装配和从应用程序上下文获取bean的方式有何不同?

(MessageSource) _applicationContext.getBean(name);

java.lang.ClassCastException: org.springframework.context.support.ResourceBundleMessageSource cannot be cast to org.springframework.context.MessageSource

它实现了接口,为什么它不能被强制转换为它?

1 个答案:

答案 0 :(得分:1)

我敢打赌这是一个类加载器问题,你很可能正在使用不同的类加载器来加载该bean。因为没有其他正当理由发生这种情况。