我有一个服务bean(用@Service注释),它为扩展ApplicationEvent抽象类的T类事件对象实现ApplicationListener接口。在Spring docs here
中有一个非常简单明了的例子然而,当我尝试使用@Autowired将此bean注入其他bean时,我得到的是:
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有 为依赖项找到匹配类型[...]的bean:预期至少为1 bean有资格作为此依赖项的autowire候选者。 依赖注释 {@ org.springframework.beans.factory.annotation.Autowired(所需=真)}
如果我尝试使用像@Resource这样的东西,那么我会得到一个类强制转换异常(尝试注入一种类型的资源但是获得代理)。
答案 0 :(得分:5)
如果我尝试使用像@Resource这样的东西,那么我会得到一个类演员 异常(尝试注入一种类型的资源,但获得一个 代理)。
这听起来像是在尝试按类引用它,而它是作为基于接口的JDK代理连接的。
如果你有这门课程:
@Service
public class FooServiceImpl implements FooService{}
将其连接为:
@Autowired
private FooService fooService;
不是:
@Autowired
private FooServiceImpl fooService;
<强>参考:强>