java - 为什么 Spring Boot 会阻塞线程?
问题描述
我试图在 Spring Boot 中创建一个套接字线程。这是 Spring Framework 中的初始启动类。
@Component
public class InitialStartUp implements ApplicationListener<ContextRefreshedEvent> {
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
// Start the Socket server
try {
ListenerSocket listenerSocket = new ListenerSocket();
listenerSocket.run();
logger.info("Starting listener socket server"); // <-- Never called
} catch (Exception e) {
logger.info(e.getMessage());
}
}
}
但问题是上面的 logger.info 方法永远不会被调用。为什么?Spring Boot 运行 listenerSocket 线程,但永远不会“退出”它。为什么?
有什么方法可以让 logger.info 被调用吗?
解决方案
推荐阅读
- html - 图像在 html/css 中过于拉伸
- swift - 从已被点击的 mapView MKAnnotation 中通过 Segue 传递数据
- c++ - 如何在 C++ 中从 UDP 解压无符号字符字节数组
- ruby-on-rails - rails s 的问题(显然是 sass)
- javascript - b-table组件中的所有列都可以启用排序吗?
- c - 为什么调用 sbrk(0) 两次会给出不同的值?
- python - Jenkins 令牌不适用于特定用户
- javascript - 在同一个函数中进行两次调用
- android - 部署 Android 应用程序包时出错
- tinkerpop - 使用属性在顶点之间添加边