Spring DestorySingleton娴佺▼

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring DestorySingleton娴佺▼相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/RoCE' title='RoCE'>RoCE   ons   鍐呭   try   瀹炰緥   鍏紬   before   nmap   tap   

?绗竴鑺備粙缁峉pring鍚姩(閾炬帴)鏃讹紝浠嬬粛AbstractApplicationContext鐨勮繃閿€姣佽繃绋嬶紝涓昏鏄皟鐢ㄤ簡鍐呴儴鐨刣estroyBeans鏂规硶锛岃繖鑺備究鏉ヤ粙缁峛ean鐨勯攢姣佽繃绋嬨€?/p>

?鍓嶉潰浠嬬粛杩囷紝DefaultSingletonBeanRegistry鐢ㄤ竴涓狹ap缂撳瓨鐫€鎵€鏈夌殑鍗曚緥瀹炰緥锛屽浜庡璞$殑閿€姣侊紝鍙绠€鍗曠殑灏嗗叾浠嶮ap涓Щ闄ゅ氨琛屻€備富瑕佸鐞嗙殑鏄緷璧栧叧绯讳笅鐨刡ean閿€姣侀『搴忎互鍙婂洖璋冩帴鍙g殑澶勭悊銆備笂闈㈠厛瀵筪isposableBeans涓墍娑夊強鍒扮殑bean閫愪釜杩涜閿€姣侊紝鐒跺悗鍐嶆竻鐞嗘墍鏈夌殑渚濊禆鍏崇郴鍜岀紦瀛樼殑鍗曚緥瀹炰緥銆?/p>

?涓婁竴鑺傛彁鍒帮紝disposableBeans涓瓨鏀剧殑鏄瓨鍦ㄩ攢姣佹椂闇€瑕佽繘琛屾柟娉曞洖璋冪殑DisposableBeanAdapter瀵硅薄锛宬ey涓哄搴旂殑bean name锛屼細鍦╞ean鍒濆鍖栧悗杩涜鍒ゆ柇骞朵笖瀛樺叆銆傝繖閲屼細浼樺厛澶勭悊杩欎簺bean鐨勯攢姣侊紝涓嬮潰閲嶇偣浠嬬粛涓媎estroySingleton鏂规硶銆?/p>

浜?destroySingleton

鎶€鏈浘鐗? src=

?濡備笂鎻忚堪浜嗚鏂规硶鐨勫ぇ鑷磋繃绋嬶紝鍒嗗埆涓?/p>

  1. 灏咲efaultSingletonBeanRegistry涓紦瀛樼殑鍚勭鍗曚緥瀹炰緥娓呴櫎鎺?/p>

  2. 鎵цdisposableBeans.remove鏂规硶锛岀Щ闄よbeanName锛岃繖閲屼細杩斿洖涓€涓狣isposableBean瀵硅薄

  3. 鍒犻櫎dependentBeanMap涓璪eanName鐨勫唴瀹癸紝涔熸槸鎵цremove鐨勬柟娉曪紝浼氳繑鍥炰緷璧栦簬beanName鐨勫叾浠朾ean name鍒楄〃锛屽啀渚濇璋冪敤destorySingleton閿€姣佽繖浜沚ean
  4. 瀵瑰綋鍓嶇殑DisposableBean鎵цdestory

  5. 鍒犻櫎containedBeanMap涓璪eanName鐨勫唴瀹癸紝鎵ц鐨剅emove鏂规硶锛宧i杩斿洖beanName渚濊禆鐨勫叾浠朾ean name鍒楄〃锛屽啀渚濇璋冪敤destorySingleton閿€姣佽繖浜沚ean
    浠庤€屽叿浣撶殑鍥炶皟鍙戠敓鍦ㄧ4姝ワ紝寮€澶存彁鍒帮紝bean鍦ㄥ疄渚嬪寲鍚庝細浠isposableBeanAdapter瀛樻斁杩沝isposableBeans涓紝浠庤€岃绫诲疄鐜颁簡鍏蜂綋鐨勫洖璋冭繃绋嬨€?/p>

涓?DisposableBeanAdapter

?DisposableBeanAdapter鐨勭粨鏋勫涓嬶紝鍏跺疄鐜颁簡DisposableBean鎺ュ彛锛屽洜鑰屽彲浠ュ涓婇潰璇寸殑锛屽湪destroySingleton鏂规硶杩涜鍥炶皟銆傚畠鍦ㄦ瀯閫犳柟娉曚腑瀵瑰嚑涓噸瑕佺殑灞炴€ц繘琛屼簡璧嬪€硷紝鐢ㄤ簬瀛樺偍閿€姣佸姩浣滅浉鍏崇殑淇℃伅锛屽寘鎷細

  1. Bean锛氬緟閿€姣乥ean瀵硅薄

  2. beanName锛氬緟閿€姣乥ean鐨刡eanName

  3. destroyMethodName锛氬緟閿€姣佽璋冪敤鐨勬柟娉曪紝璇ユ柟娉曟潵婧愪簬destory-method閰嶇疆椤癸紝濡傛灉涓?inferred)锛屽垯浼氬皢鍥炶皟鏂规硶璧嬪€间负close鎴栬€卻hutdown

  4. destoryMethod锛歞estoryMethodName瀵瑰簲鐨凪ethod瀵硅薄

  5. beanPostProcessors锛氶渶瑕佸鐞嗚bean鐨凞estructionAwareBeanPostProcessor鍥炶皟鍒楄〃銆傚湪瀹炰緥鍖朌isposableBeanAdapter瀵硅薄鏃讹紝浼氳繃婊ょ郴缁熶腑鐨凚eanPostProcessor鍒楄〃锛屾壘鍑哄疄鐜癉estructionAwareBeanPostProcessor鎺ュ彛锛屼笖requiresDestruction鏂规硶杩斿洖true鐨勫疄渚嬶紝鐢ㄤ簬鍚庣画杩涜鍥炶皟銆傦紙InitDestroyAnnotationBeanPostProcessor绫诲疄鐜颁簡璇ユ柟娉曪紝鐢ㄤ互鍥炶皟@PreDestory娉ㄨВ鐨勬柟娉曪紝CommonAnnotationBeanPostProcessor缁ф壙鑷绫伙紝璁剧疆浜哾estroyAnnotationType涓篜reDestroy.class锛?/p>

鎶€鏈浘鐗? src=

?褰撴寜鐓х锛堜簩锛夐儴鍒嗙4姝ユ墽琛屾椂锛岃绫讳細鎸夌収濡備笅椤哄簭鎵ц閿€姣佸姩浣滐細

鎶€鏈浘鐗? src=

  1. 濡傛灉beanPostProcessors鍒楄〃涓嶄负绌猴紝鍒欏洖璋僁estructionAwareBeanPostProcessor鐨刾ostProcessBeforeDestruction鏂规硶锛屽嵆鎵ц@PreDestory娉ㄨВ鏂规硶

  2. 濡傛灉瀹炵幇浜咲isposableBean锛屽垯鍥炶皟DisposableBean鐨刣estroy鏂规硶锛屽嵆鎵цDisposableBean鎺ュ彛鏂规硶

  3. 濡傛灉閰嶇疆浜哾estroy-method锛屽垯鎵ц閰嶇疆鐨勬柟娉曪紝鍗虫墽琛宒estory-method閰嶇疆鏂规硶

鎶€鏈浘鐗? src=

涓汉鍏紬鍙凤細鍟婇┘

以上是关于Spring DestorySingleton娴佺▼的主要内容,如果未能解决你的问题,请参考以下文章

springboot鎵ц娴佺▼

纭呯墖娓呮礂娴佺▼

榛戣嫻鏋滃紑鑽掕绯荤粺绡? 瓒呰缁嗙殑绾噣 MacOS 瀹夎娴佺▼

etrace 璺熻釜 nginx涔婬TTP璇锋眰娴佺▼

FILEBEAT+ELK鏃ュ織鏀堕泦骞冲彴鎼缓娴佺▼

銆岀81鏈熴€? 鏋舵瀯鍒嗘瀽 -Tomcat 璇锋眰娴佺▼