【发布时间】:2019-11-28 07:17:32
【问题描述】:
我的目标是监听特定的 tcp 连接事件并使用它执行一些任务。
通过实现ApplicationEventPublisher,我可以看到正在触发的事件。
@Component
public class TestEventPublisher implements ApplicationEventPublisher {
@Override
public void publishEvent(Object event) {
LOG.info("Event Fired - {}", event.getClass());
}
}
INFO [globalTaskExecutor-2] 记录器 - 事件触发 - 类 org.springframework.integration.ip.tcp.connection.TcpConnectionOpenEvent
INFO [ThreadPoolTaskExecutor-3] 记录器 - 事件触发 - 类 org.springframework.integration.ip.tcp.connection.TcpConnectionCloseEvent
所以我为它添加了监听器,但它们没有被执行。
@Component
public class TestListeners {
@EventListener(TcpConnectionOpenEvent.class)
public void doSomethingWhenConnectionIsOpen() {
LOG.info("----------------**************** CONNECTION OPEN EVENT FIRED ****************** -----------------------"); // No log shows up
}
@EventListener(TcpConnectionFailedEvent.class)
public void doSomethingElseWhenConnectionFails() {
LOG.info("----------------**************** CONNECTION ATTEMPT FAILED EVENT FIRED ****************** -----------------------"); // No Log shows up
}
}
我做错了什么?
【问题讨论】:
标签: spring spring-boot java-8 spring-integration