我似乎想出了一个问题。
我有一堂课
@Component
@Scope("prototype")
public class MyClass extends BaseClass {
....
...
@Async
public void doSomething() {
....
}
....
}
和一个包含
<context:annotation-config />
<context:component-scan base-package="com.company.project" />
<task:annotation-driven executor="taskExecutor"/>
<task:executor id="taskExecutor" pool-size="10" queue-capacity="10" />
在我拥有的代码的某些部分
BaseClass bean = springBeans.getBean(MyClass.class);
但我得到了这个例外
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'myClass' must be of type [com.company.project.MyClass], but was actually of type [$Proxy19]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:361)
我可以理解它是一个代理类,但不确定为什么 Spring 不允许转换代理。
我在类路径上有 cglib 2.2 no dep,以及 Spring 3.2 核心库。
任何人都可以指出解决这个问题的任何线索吗?
简而言之,我希望一个方法在调用时是异步的。