Spring mvc Spring@EventListener注释不';无法使用@Service注释

Spring mvc Spring@EventListener注释不';无法使用@Service注释,spring-mvc,event-handling,Spring Mvc,Event Handling,下面是我想要接收的两个对象ContextRefreshedEvent @Component public class InitDB { @EventListener public void handleContextRefresh(ContextRefreshedEvent e) { // } } InitDB按预期工作,但在这种情况下: @Service public class MyService impleme

下面是我想要接收的两个对象
ContextRefreshedEvent

@Component
public class InitDB {
                  
    @EventListener
    public void handleContextRefresh(ContextRefreshedEvent e) {
        //
    }
}
InitDB按预期工作,但在这种情况下:

@Service
public class MyService implements IMyService{
    
    @Autowired
    private MyDao _dao;             // Autowired WORKs
     
    @EventListener
    public void handleContextRefresh(ContextRefreshedEvent e) {
        // DOESN'T WORK
    }
    
    [...]
     
}
知道我做错了什么吗

这是我的maven属性

<properties>
    <java-version>1.7</java-version>
    <org.springframework-version>4.2.2.RELEASE</org.springframework-version>
    <spring-security-web-version>3.2.5.RELEASE</spring-security-web-version>
    <org.aspectj-version>1.7.2</org.aspectj-version>
    <org.slf4j-version>1.5.10</org.slf4j-version>
    <hibernate-version>4.3.6.Final</hibernate-version>
    <json-jackson-version>2.4.1</json-jackson-version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <skipTests>true</skipTests>
</properties>

1.7
4.2.2.1发布
3.2.5.1发布
1.7.2
1.5.10
4.3.6.最终版本
2.4.1
UTF-8
真的

我也遇到了同样的问题,对我来说,它证明了我的侦听器bean没有在Spring之前加载到依赖项中

如果您使用Spring Boot Actuator,您可以随时检查加载的bean

Spring没有检测到这个bean,因为我有一个名称空间输入错误。我的主要名称空间是com.foo(包含com.foo.security和com.foo.controllers等包),当我添加一个新的包日志时,我在名称空间中引入了一个拼写错误:com.ffoo.logging

因此,Spring无法找到我添加的新组件/服务

对于这个特殊的问题,是否用@Service注释并不重要,因为@Service是@Component的一个子类(请参阅)