国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

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

瀏覽:144日期: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
相關文章:
主站蜘蛛池模板: 监利县| 讷河市| 石河子市| 岳普湖县| 稻城县| 德格县| 政和县| 铜川市| 新津县| 澄江县| 高平市| 崇明县| 唐河县| 荥经县| 仪陇县| 图木舒克市| 虎林市| 泊头市| 盘山县| 基隆市| 禹州市| 金阳县| 阳高县| 永川市| 乳山市| 开阳县| 英吉沙县| 宜都市| 唐河县| 孝感市| 土默特右旗| 黄大仙区| 玉林市| 镇坪县| 名山县| 镇赉县| 康保县| 连云港市| 鞍山市| 顺昌县| 昭觉县|