gpt4 book ai didi

java - @Async 通过代理类在 Spring 3.2 中创建异常

转载 作者:搜寻专家 更新时间:2023-11-01 03:24:26 25 4
gpt4 key购买 nike

我好像想出了一个问题。

我有课

@Component
@Scope("prototype")
public class MyClass extends BaseClass {

....
...
@Async
public void doSomething() {
....
}
....
}

和一个包含

的Spring配置
<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,以及 Spring 3.2 核心库。

谁能指出解决此问题的任何线索?

简而言之,我希望一个方法在调用时是异步的。

最佳答案

因为你有 CGLIB,你可能想将 @Scope 更改为

@Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)

关于java - @Async 通过代理类在 Spring 3.2 中创建异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com