QQ1252776430 2016-09-27 07:33 采纳率: 22%
浏览 2772

Spring代理getBean()只能返回接口类,否则报错的疑点

ApplicationContext ctx=new FileSystemXmlApplicationContext("WebContent\WEB-INF\spring.xml");
Vt vtb=(Vt)ctx.getBean("vt");
Mr mrb=(Mr) ctx.getBean("mr");

两个类Mr和Vt是镜像的
public class Mr implements MindReader
{
private String thoughts;

public void interceptThoughts(String thoughts)
{System.out.println("hahaha");
this.thoughts=thoughts;}

public String getThoughts()
{return thoughts;}
}

public class Vt implements Thinker{

private String thoughts;
public void thinkOfSomething(String thoughts)
{
    this.thoughts=thoughts;}

public String getThoughts()
{return thoughts;}

}

而且它们的接口也是镜像的

我实际调用的时候
Vt vtb=(Vt)ctx.getBean("vt"); ClassCastException报错,查了下资料代理默认创建必须要用接口类,换成Thinker vtb=(Thinker)ctx.getBean("vt");
问题解决了。
但是Mr mrb=(Mr) ctx.getBean("mr");却没有任何异常可以正常使用,这是怎么回事?

  • 写回答

3条回答 默认 最新

  • Veggiel 2016-09-27 09:05
    关注

    你配置文件bean的怎么写的 id是什么

    评论

报告相同问题?

悬赏问题

  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题