日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring IOC容器的扩展

發(fā)布時間:2025/5/22 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring IOC容器的扩展 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在此之前已經(jīng)完成了IOCxml的解析和實例化工作,接下來需要分析Spring的高級版本對IOC容器的功能擴展:

代碼分析如下:

synchronized (this.startupShutdownMonitor) {// 準(zhǔn)備刷新上下文環(huán)境prepareRefresh();// 初始化BeanFactory,并進行XML文件的讀取 之前大部分IOC的核心邏輯都在這里ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();//對BeanFactory進行各種功能填充prepareBeanFactory(beanFactory);try {// 留給子類進行服務(wù)覆蓋和擴展的方法.postProcessBeanFactory(beanFactory);//激活各種BeanFactory處理器.invokeBeanFactoryPostProcessors(beanFactory);//激活Bean后處理器,在getBean時候調(diào)用,而BeanFactory后處理器是容器級別的,在此時就會被調(diào)用.registerBeanPostProcessors(beanFactory);//資源國際化處理.initMessageSource();// 初始化廣播器,用于放所有的bean的監(jiān)聽器,并放入BeanFactory屬性applicationEventMulticaster中.initApplicationEventMulticaster();// 留給子類去初始化其他bean,目前方法為空.onRefresh();// 查找bean的所有的監(jiān)聽器,并注冊到廣播器中去.registerListeners();// 初始化剩下的單實例.finishBeanFactoryInitialization(beanFactory);// 完成刷新過程,通知生命周期.finishRefresh();}

  

接下來,即開始對上面的步奏進行一一的講解:

prepareRefresh();// 準(zhǔn)備刷新上下文環(huán)境

?

protected void prepareRefresh() {//留給子類覆蓋的方法 initPropertySources();// Validate that all properties marked as required are resolvable// 驗證所需的屬性已經(jīng)存放到環(huán)境中 getEnvironment().validateRequiredProperties();// Allow for the collection of early ApplicationEvents,// to be published once the multicaster is available...this.earlyApplicationEvents = new LinkedHashSet<ApplicationEvent>();}

?

下面舉一個列子,來幫助理解,如何驗證所需的屬性已經(jīng)存放到環(huán)境中

public class MyClassPathXmlApplicationContext extends ClassPathXmlApplicationContext{public MyClassPathXmlApplicationContext(String... configLocations) throws BeansException {super(configLocations);}protected void initPropertySources(){// 在這里設(shè)置需要檢測的環(huán)境變量 VARgetEnvironment().setRequiredProperties("VAR");}protected void customizeBeanFactory(DefaultListableBeanFactory beanFactory){super.setAllowCircularReferences(false);super.setAllowBeanDefinitionOverriding(false);super.customizeBeanFactory(beanFactory);} }

  

我們在使用MyClassPathXmlApplicationContext 對象加載bean的時候就會進行環(huán)境變量的驗證

在使用ApplicationContext ctx = new MyClassPathXmlApplicationContext("spring.xml");的時候,如果環(huán)境變量中沒有怎加VAR,就會報錯,拋出異常。

?

轉(zhuǎn)載于:https://www.cnblogs.com/histlyb/p/9179492.html

總結(jié)

以上是生活随笔為你收集整理的spring IOC容器的扩展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品成人久久久 | 69中国xxxxxxxxx69| 午夜免费在线 | 日本欧美久久久久免费播放网 | 国产精品一区二区黑人巨大 | 欧美日韩色片 | 久久天天躁狠狠躁夜夜躁 | 玉足女爽爽91| 一本久道久久 | 欧美韩国日本在线 | 亚洲综合精品国产 | 日韩精品中文在线 | 亚洲激情欧美 | 青娱乐国产 | 亚洲成熟丰满熟妇高潮xxxxx | 亚洲精品久久视频 | 成人精品一区二区三区中文字幕 | 亚洲免费av网 | 又爽又黄又无遮挡 | 午夜67194| xx99小雪| 亚洲最大网站 | 国产精品国产a级 | a天堂资源 | 国产91av视频 | 污污的视频在线免费观看 | 黄色小视屏| 香蕉视频网站在线 | 欧美黑人性猛交xxxx | 男人天堂资源 | 99热免费 | 日韩美女啪啪 | 国产中文字幕久久 | 传媒av在线 | 国产成人激情 | 中文字幕在线视频一区二区 | 精品熟妇无码av免费久久 | 免费精品在线观看 | 三年中国片在线高清观看 | 外国av网站 | 特黄特色大片免费 | 超碰免费公开在线 | www.中文字幕| 肥臀av| 免费观看一区二区三区视频 | 一区两区小视频 | 欧美日韩亚洲国产综合 | 亚洲最大成人综合网 | 国产精品高潮呻吟久久久 | 91精品国产一区二区三区 | 久久久久久久免费 | 亚洲AV综合色区国产精品天天 | 德国性猛交xxxxhd | 无码精品视频一区二区三区 | 人人插人人澡 | 欧美激情偷拍 | 制服丝袜国产在线 | 国产亚洲久久 | 欧美女同视频 | 欧美性受xxxx黑人猛交88 | av三级| 久久久久亚洲精品中文字幕 | 五月激情综合婷婷 | 人妖av在线 | 国产人妖一区二区三区 | 久久国产精品久久久久 | 国产亚洲色婷婷久久99精品 | 国产精品资源在线 | 一区二区三区黄色录像 | 国产亚洲精品美女久久久久 | 毛片毛片毛片毛片毛片毛片毛片 | 国产欧美日韩在线视频 | 国产天天射 | 天天干导航 | 狠狠操综合| 国产男女猛烈无遮挡免费视频 | 男人在线视频 | 亚洲经典在线 | 欧美午夜剧场 | 婷婷激情五月 | 伊人久艹 | 国产精品无码中文 | 官场艳妇疯狂性关系 | 国产日韩欧美视频在线 | 日韩av伦理 | 婷婷丁香花五月天 | 天堂影音 | 日本视频在线免费 | 久久久线视频 10 | 欧美不卡在线 | 神马三级我不卡 | 亚洲综合视频在线 | 欧美另类69xxxx | 精品人伦一区二区 | 六月丁香综合网 | 欧美视频综合 | 亚洲熟女一区二区三区 | 伊人影音 | 国产精品网址 |