久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

java - 在Spring初始化過程中阻塞合理嗎?

瀏覽:153日期:2023-10-26 14:07:11

問題描述

讀到了 NettyRPC 的代碼, 發現 RpcServer 中實現了 Spring 的 InitializingBean, 在方法實現里啟動了一個 Netty 服務器, 并且阻塞了.

@Overridepublic 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 源碼, 并不清楚情況, 求大家不吝賜教...

問題解答

回答1:

感覺自己問了個很笨的問題... Spring容器的初始化過程是單線程的, 在這里阻塞住了自然就表示... 后續工作沒法進行了.

在 bean 配置文件的最后面加了個測試的 Bean , 在初始化的時候會打log, 結果并沒有打出來.

回答2:

這個應該是合理的,因為如果多線程實例化Bean,那么Bean和Bean之間的依賴就很難處理了,代碼復雜度陡升。

回答3:

合理,原因樓上已經說了。如果異步初始化bean的需求,重寫BeanFactory的邏輯就好了,前提是你要確保這些bean沒有相互依賴關系

標簽: java
相關文章:
主站蜘蛛池模板: 泰安市| 广元市| 安化县| 汪清县| 循化| 灵宝市| 永定县| 仙桃市| 永川市| 普格县| 荥阳市| 大石桥市| 图们市| 襄垣县| 江门市| 巴彦县| 错那县| 泉州市| 保山市| 平度市| 承德县| 平江县| 富蕴县| 普陀区| 柘城县| 贡觉县| 泽库县| 克东县| 手游| 江城| 伊金霍洛旗| 福泉市| 南宫市| 阿图什市| 紫云| 洛隆县| 南汇区| 蓝山县| 尉氏县| 达孜县| 沂源县|