读到了 NettyRPC 的代码, 发现 RpcServer 中实现了 Spring 的 InitializingBean, 在方法实现里启动了一个 Netty 服务器, 并且阻塞了.
@Override
public void afterPropertiesSet() throws Exception {
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
// 前略...
future.channel().closeFuture().sync();
} finally {
workerGroup.shutdownGracefully();
bossGroup.shutdownGracefully();
}
}
源码地址:https://github.com/luxiaoxun/...
我想问的是这样阻塞不会对 Spring 的初始化造成影响吗? (没有读过 Spring 源码, 并不清楚情况, 求大家不吝赐教...
3 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
感觉自己问了个很笨的问题... Spring容器的初始化过程是单线程的, 在这里阻塞住了自然就表示... 后续工作没法进行了.
在 bean 配置文件的最后面加了个测试的 Bean , 在初始化的时候会打log, 结果并没有打出来.
添加回答
举报
0/150
提交
取消
