ApplicationContext ctx = new AnnotationConfigApplicationContext(Config.class);

AsyncBean session = ctx.getBean(AsyncBean.class);

Caused by: java.lang.ClassCastException: $Proxy14 cannot be cast to AsyncBean


无法弄清楚如何将@Async与@EnableAsync一起使用...。它似乎会产生代理,而我无法处理单例。

另一个例子:

@Bean
public Bean bean(){
   Bean bean=new Bean();
   bean.registerHandler(asyncBean());
}

@Bean
public AsyncBean asyncBean(){
   return new AsyncBean();
 }


这也会引发相同的类强制转换异常。


  java.lang.ClassCastException:$ Proxy14无法转换为AsyncBean

最佳答案

Spring要求AsyncBean是接口而不是类。通常,代理类必须是接口。

08-27 20:08