国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

31、Spring容器啟動(dòng)時(shí),為什么先加載BeanFactoryPostProcess

這篇具有很好參考價(jià)值的文章主要介紹了31、Spring容器啟動(dòng)時(shí),為什么先加載BeanFactoryPostProcess。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Spring容器啟動(dòng)時(shí),為什么先加載BeanFactoryPostProcess

  • 因?yàn)锽eanDefinition會(huì)在ioc容器加載的時(shí)候先注冊(cè), 而BeanFactoryPostProcess就是在所有的BeanDefinition注冊(cè)完后做擴(kuò)展的,所以要先加載BeanFactoryPostProcess
  • 解析配置類的組件 它就實(shí)現(xiàn)BeanFactoryPostProcess, 所以要先去加載BeanFactoryPostProcess

Bean獲取方式

  • 方式一:通過BeanFactory獲取
  • 方式二 :通過BeanFactoryAware獲取
  • 方式三:?jiǎn)?dòng)獲取ApplicationContext
  • 方式四:通過繼承ApplicationObjectSupport
  • 方式五:通過繼承WebApplicationObjectSupport
  • 方式六:通過WebApplicationContextUtils
  • 方式七:通過ApplicationContextAware
  • 方式八:通過ContextLoader
    使用ContextLoader提供的getCurrentWebApplicationContext方法,也是常用的獲取WebApplicationContext的一種方法。
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
wac.getBean(beanID);

  • 方式九:通過BeanFactoryPostProcessor
    Spring工具類,方便在非Spring管理環(huán)境中獲取Bean。
@Componentpublic
final class SpringUtils implements BeanFactoryPostProcessor {
    /**
     * Spring應(yīng)用上下文環(huán)境
     */
    private static ConfigurableListableBeanFactory beanFactory;

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
        SpringUtilsS.beanFactory = beanFactory;
    }

    /**
     * 獲取對(duì)象     *     * @param name     * @return Object 一個(gè)以所給名字注冊(cè)的bean的實(shí)例     * @throws BeansException     *
     */
    @SuppressWarnings("unchecked")
    public static <T> T getBean(String name) throws BeansException {
        return (T) beanFactory.getBean(name);
    }

    /**
     * 獲取類型為requiredType的對(duì)象     *     * @param clz     * @return     * @throws BeansException     *
     */
    public static <T> T getBean(Class<T> clz) throws BeansException {
        T result = (T) beanFactory.getBean(clz);
        return result;
    }

    /**
     * 如果BeanFactory包含一個(gè)與所給名稱匹配的bean定義,則返回true     *     * @param name     * @return boolean
     */
    public static boolean containsBean(String name) {
        return beanFactory.containsBean(name);
    }

    /**
     * 判斷以給定名字注冊(cè)的bean定義是一個(gè)singleton還是一個(gè)prototype。 如果與給定名字相應(yīng)的bean定義沒有被找到,將會(huì)拋出一個(gè)異常(NoSuchBeanDefinitionException)     *     * @param name     * @return boolean     * @throws NoSuchBeanDefinitionException     *
     */
    public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
        return beanFactory.isSingleton(name);
    }

    /**
     * @param name * @return Class 注冊(cè)對(duì)象的類型     * @throws NoSuchBeanDefinitionException     *
     */
    public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
        return beanFactory.getType(name);
    }

    /**
     * 如果給定的bean名字在bean定義中有別名,則返回這些別名     *     * @param name     * @return     * @throws NoSuchBeanDefinitionException     *
     */
    public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
        return beanFactory.getAliases(name);
    }

    /**
     * 獲取aop代理對(duì)象     *      * @param invoker     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> T getAopProxy(T invoker) {
        return (T) AopContext.currentProxy();
    }
}

文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-764177.html

到了這里,關(guān)于31、Spring容器啟動(dòng)時(shí),為什么先加載BeanFactoryPostProcess的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 在容器鏡像中為了安全為什么要?jiǎng)h除 setuid 和 setgid?

    在容器鏡像中刪除 setuid(set user ID)和 setgid(set group ID)權(quán)限通常是出于安全考慮。這兩個(gè)權(quán)限位允許進(jìn)程在執(zhí)行時(shí)以文件所有者或文件所屬組的身份運(yùn)行,而不是以調(diào)用進(jìn)程的用戶身份運(yùn)行。 刪除 setuid 和 setgid 權(quán)限的主要原因包括: 減少潛在的權(quán)限濫用: 如果容器中的

    2024年02月20日
    瀏覽(17)
  • 【Unity細(xì)節(jié)】Unity中為什么用字符串加載對(duì)象,檢查多便都加載不出來(lái)—(命名細(xì)節(jié))

    【Unity細(xì)節(jié)】Unity中為什么用字符串加載對(duì)象,檢查多便都加載不出來(lái)—(命名細(xì)節(jié))

    ?????個(gè)人主頁(yè) :@元宇宙-秩沅 hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?! 本文由 秩沅 原創(chuàng) ??????收錄于專欄 :unity細(xì)節(jié)和bug ??????優(yōu)質(zhì)專欄 ?【軟件設(shè)計(jì)師高頻考點(diǎn)暴擊】 明明名字對(duì)上了,類型也對(duì)上了,為什么還是加載不出來(lái) 命名時(shí),多添加了空格 把空

    2024年02月05日
    瀏覽(50)
  • Pycharm這個(gè)更新索引是個(gè)什么操作,為什么每次啟動(dòng),都會(huì)進(jìn)行?

    Pycharm這個(gè)更新索引是個(gè)什么操作,為什么每次啟動(dòng),都會(huì)進(jìn)行?

    點(diǎn)擊上方“ Python爬蟲與數(shù)據(jù)挖掘 ”,進(jìn)行關(guān)注 回復(fù)“ 書籍 ”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書 今 日 雞 湯 九重城闕煙塵生,千乘萬(wàn)騎西南行。 大家好,我是皮皮。 一、前言 前幾天在Python最強(qiáng)王者交流群【吳超建】問了一個(gè) Pycharm 操作的問題,這里拿出來(lái)給大家分

    2024年02月01日
    瀏覽(31)
  • 【容器架構(gòu)】你知道有 Docker 為什么還要 K8s 嗎?

    【容器架構(gòu)】你知道有 Docker 為什么還要 K8s 嗎?

    ?? 博主介紹 : 博主從事應(yīng)用安全和大數(shù)據(jù)領(lǐng)域,有8年研發(fā)經(jīng)驗(yàn),5年面試官經(jīng)驗(yàn),Java技術(shù)專家,WEB架構(gòu)師,阿里云專家博主,華為云云享專家,51CTO TOP紅人 Java知識(shí)圖譜點(diǎn)擊鏈接: 體系化學(xué)習(xí)Java(Java面試專題) ???? 感興趣的同學(xué)可以收藏關(guān)注下 , 不然下次找不到喲

    2024年02月16日
    瀏覽(22)
  • cron 定時(shí)任務(wù),啟動(dòng)shell腳本,為什么沒有執(zhí)行

    Cron 定時(shí)任務(wù)不執(zhí)行時(shí),可能有多種原因。下面是一些常見的問題及其解決方法: Cron 服務(wù)未運(yùn)行 :首先確認(rèn)cron服務(wù)是否正在運(yùn)行。在大多數(shù)Linux系統(tǒng)中,你可以使用以下命令查看cron服務(wù)的狀態(tài): Cron 表達(dá)式錯(cuò)誤 :確保你的cron表達(dá)式是正確的。Cron表達(dá)式包括五個(gè)或六個(gè)字段

    2024年04月13日
    瀏覽(46)
  • Windows 程序開機(jī)自啟動(dòng)速度優(yōu)化,為什么騰訊會(huì)議自啟動(dòng)速度那么高?

    Windows 程序開機(jī)自啟動(dòng)速度優(yōu)化,為什么騰訊會(huì)議自啟動(dòng)速度那么高?

    目錄 一、問題的說明和定義 二、問題的分析 1.問題初步分析 2.詳細(xì)的分析: 2.1Windows常見的自啟動(dòng)方式 2.2Windows常見的自啟動(dòng)方式的細(xì)節(jié)分析 三、問題的解決方案 1、為什么騰訊會(huì)議Rooms那么快 2.我們是否可以跟騰訊會(huì)議一樣快 這兩天有個(gè)優(yōu)化項(xiàng)需要做個(gè)技術(shù)調(diào)研,就是我們

    2024年02月02日
    瀏覽(25)
  • flask啟動(dòng)為什么會(huì)調(diào)用__call__

    先來(lái)看看__call__什么時(shí)候時(shí)候可以調(diào)用 不返回任何結(jié)果 有結(jié)果返回 注意這個(gè)__call__必須要實(shí)例化之后才可以調(diào)用不然不會(huì)調(diào)用 無(wú)任何結(jié)果返回 內(nèi)置函數(shù)同樣可以用__call__()方法來(lái)調(diào)用 自定義函數(shù)也也可以通過__call__()方法來(lái)調(diào)用 接下來(lái)理解為什么 這個(gè)最后會(huì)調(diào)取Flask的__cal

    2024年02月16日
    瀏覽(20)
  • 解決mysql的啟動(dòng)類型設(shè)置了自動(dòng),為什么電腦開機(jī)后還是需要手動(dòng)啟動(dòng)?

    解決mysql的啟動(dòng)類型設(shè)置了自動(dòng),為什么電腦開機(jī)后還是需要手動(dòng)啟動(dòng)?

    問題: 明明mysql的啟動(dòng)類型設(shè)置了自動(dòng),為什么電腦開機(jī)后還是需要手動(dòng)啟動(dòng),如下圖。 ?解決方式: 一、ctrl+R 快捷鍵彈出運(yùn)行框 ?二、輸入 regedit 后回車 ?三、地址欄內(nèi)輸入? 計(jì)算機(jī)HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl 后回車 ? ?四、找到Control入徑后,新建一個(gè)名稱為

    2024年02月14日
    瀏覽(33)
  • Spring為什么默認(rèn)是單例的?

    Spring為什么默認(rèn)是單例的?

    目錄 一、五種作用域 二、單例bean與原型bean的區(qū)別 ?三、單例Bean的優(yōu)勢(shì)與劣勢(shì) 一、五種作用域 1.singleton: singleton是Spring Bean的 默認(rèn)作用域 ,也就是單例模式。在整個(gè)應(yīng)用程序中,只會(huì)創(chuàng)建一個(gè)實(shí)例,Bean的所有請(qǐng)求都會(huì)共享這個(gè)實(shí)例。 2.prototype: prototype表示 原型模式 ,每次

    2024年02月07日
    瀏覽(23)
  • 【Spring】淺談spring為什么推薦使用構(gòu)造器注入

    因本人實(shí)力有限,該文章主要內(nèi)容(在文章基礎(chǔ)上加了點(diǎn)點(diǎn)東西)均來(lái)自: 原文鏈接:https://www.cnblogs.com/joemsu/p/7688307.html 作者:joemsu ? Spring框架對(duì)Java開發(fā)的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反轉(zhuǎn))和AOP,平時(shí)使用最多的就是其中的IOC,我們通過

    2024年02月13日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包