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的一个子类(请参阅)