gpt4 book ai didi

spring - 使用实现 ApplicationListener 的 @Autowired 注入(inject)一个 bean 不起作用?

转载 作者:行者123 更新时间:2023-12-01 11:56:30 30 4
gpt4 key购买 nike

我有一个服务 bean(用 @Service 注释),它为扩展 ApplicationEvent 抽象类的 T 类型事件对象实现 ApplicationListener 接口(interface)。在 Spring 文档中有一个非常简单明了的例子 here

然而,当我尝试使用@Autowired 将这个 bean 注入(inject)其他 bean 时,我得到的是:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [...] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotation {@org.springframework.beans.factory.annotation.Autowired(required=true)}

如果我尝试使用类似@Resource 的东西,那么我会得到一个类转换异常(试图注入(inject)一种类型的资源但得到一个代理)。

最佳答案

If i try to use something like @Resource then i get a class cast exception (attempting to inject a resource of one type but getting a Proxy).

这听起来像是您正在尝试按类引用它,而它被连接为基于接口(interface)的 JDK 代理。

如果你有这个类:

@Service
public class FooServiceImpl implements FooService{}

将其连接为:

@Autowired
private FooService fooService;

不像:

@Autowired
private FooServiceImpl fooService;

引用:

关于spring - 使用实现 ApplicationListener 的 @Autowired 注入(inject)一个 bean 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651414/

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