使用@Autowired 注入实现ApplicationListener 的bean 不起作用?
我有一个服务bean(用@Service注释),它为扩展ApplicationEvent抽象类的T类型事件对象实现ApplicationListener接口。 Spring 文档中有一个非常简单明了的示例 here
但是,当我尝试使用 @Autowired 将此 bean 注入其他 bean 时,我得到的是:
org.springframework.beans.factory.NoSuchBeanDefinitionException:否 为依赖项找到了 [...] 类型的匹配 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。 依赖注释 {@org.springframework.beans.factory.annotation.Autowired(required=true)}
如果我尝试使用 @Resource 之类的东西,那么我会得到一个类转换异常(尝试注入一种类型的资源但获取代理)。
I have a service bean (annotated with @Service) which implements the ApplicationListener inteface for T type of event objects that extend the ApplicationEvent abstract Class. There is a pretty simple and clear example of this in the Spring docs here
However when i attempt to inject this bean into other ones using @Autowired i get is:
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)}
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).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这听起来像是您试图按类引用它,而它是作为基于接口的 JDK 代理连接的。
如果您有此类:
将其连接为:
而不是:
参考:
This sounds like you are trying to reference it by class, whereas it is wired as an interface-based JDK proxy.
If you have this class:
wire it as:
not as:
Reference: