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

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

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

瀏覽:137日期: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
相關文章:
主站蜘蛛池模板: 陇南市| 通河县| 建水县| 什邡市| 买车| 六枝特区| 长治县| 娄烦县| 梧州市| 皮山县| 江津市| 松阳县| 陵川县| 余江县| 汉沽区| 长宁县| 柏乡县| 都匀市| 大城县| 桂东县| 房产| 丰城市| 龙门县| 明星| 海兴县| 抚宁县| 伊宁县| 黑山县| 双鸭山市| 古田县| 沙坪坝区| 木里| 侯马市| 札达县| 山阴县| 得荣县| 无锡市| 新兴县| 土默特左旗| 临沭县| 城固县|