当前位置: 首页 > 知识库问答 >
问题:

从ApplicationContext检索后无法强制转换Bean对象

戚甫
2023-03-14

我正在运行一个第三方应用程序,每当在数据库中插入新记录时,它就会调用我的类。我的类名在这个第三方程序正在使用的属性文件中。所以这个程序使用反射调用我的类。

我的类需要访问名为titleService的SpringComponent。我可以马上把豆子拿走。

 ApplicationContext ctx = SpringContext.getApplicationContext();
 Object titleServiceObject = ctx.getBean("titleService");

这很好,但我必须使用反射来调用我想要的方法,因为它是一个对象,而不是一个具体的类。

我试图将其转换为TitleService对象,但我得到了错误:

    org.springframework.beans.factory.BeanNotOfRequiredTypeException: 
Bean named 'titleService' is expected to be of type 'com.title.TitleService' but was actually of type 'com.title.TitleService'

我不理解错误消息,因为预期的类名与实际的类名相同。

我也尝试过这样做:

TitleService titleService = ctx.getBean(TitleService.class)

但我也犯了同样的错误。

TitleService对象有几个自动连接的组件,所以我不能使用“new”来创建这个对象。

如何获取TitleObject对象?

共有1个答案

章岳
2023-03-14

这个问题似乎是由使用spring开发工具引起的。我停止使用Spring开发工具,问题已经解决了。我正在做更多的研究来解释为什么会出现这种情况。我在这里找到了这个链接,它描述了使用spring开发工具如何导致类加载器问题:在这里输入链接描述

 类似资料: