1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        如何手動獲取 Spring 容器中的 Bean?

        共 1819字,需瀏覽 4分鐘

         ·

        2020-12-23 20:01


        點擊上方?泥瓦匠 關注我!

        老家浙江東海邊,靠海吃海,目前經(jīng)營一個小品牌,讓普通人吃到最新鮮的海鮮。有興趣可以點擊了解:《浙里有漁,鮮人一步!》???

        ApplicationContextAware 接口的作用:

        先來看下 Spring API 中對于?ApplicationContextAware?這個接口的描述:

        即是說,當一個類實現(xiàn)了這個接口之后,這個類就可以方便地獲得 ApplicationContext 中的所有bean。

        換句話說,就是這個類可以直接獲取Spring配置文件中,所有有引用到的bean對象。

        如何使用 ApplicationContextAware 接口?

        如何使用該接口?很簡單。

        1、定義一個工具類,實現(xiàn) ApplicationContextAware,實現(xiàn) setApplicationContext方法

        public?class?SpringContextUtils?implements?ApplicationContextAware?{?
        ????private?static?ApplicationContext?context;

        ????@Override
        ????public?void?setApplicationContext(ApplicationContext?context)
        ????????????throws?BeansException?{
        ????????SpringContextUtils.context?=?context;
        ????}

        ????public?static?ApplicationContext?getContext(){
        ????????return?context;
        ????}

        }

        如此一來,我們就可以通過該工具類,來獲得 ApplicationContext,進而使用其getBean方法來獲取我們需要的bean。Spring Aware容器感知技術,這篇推薦看下。

        2、在Spring配置文件中注冊該工具類

        之所以我們能如此方便地使用該工具類來獲取,正是因為Spring能夠為我們自動地執(zhí)行 setApplicationContext 方法,顯然,這也是因為IOC的緣故,所以必然這個工具類也是需要在Spring的配置文件中進行配置的。

        "springContextUtils"?class="com.zker.common.util.SpringContextUtils"?/>

        3、編寫方法進行使用

        一切就緒,我們就可以在需要使用的地方調(diào)用該方法來獲取bean了。

        ????public?String?ajaxRegister()?throws?IOException?{
        ????????UserDao?userDao?=?(UserDao)SpringContextUtils.getContext().getBean("userDao");
        ????????if?(userDao.findAdminByLoginName(loginName)?!=?null
        ????????????????||?userDao.findUserByLoginName(loginName)?!=?null)?{
        ????????????message.setMsg("用戶名已存在");
        ????????????message.setStatus(false);
        ????????}?else?{
        ????????????message.setMsg("用戶名可以注冊");
        ????????????message.setStatus(true);
        ????????}

        ????????return?"register";
        ????}

        作者:Dulk
        來源:https://www.cnblogs.com/deng-cc/p/6373670.html

        老家浙江東海邊,靠海吃海,目前經(jīng)營一個小品牌,讓普通人吃到最新鮮的海鮮。有興趣可以點擊了解:《浙里有漁,鮮人一步!》???


        往期推薦

        開發(fā)中,那些常用的 MySQL 優(yōu)化

        實現(xiàn)用戶一鍵登錄的方案有哪些?

        如何實現(xiàn)刪除重復記錄并且只保留一條?

        如何學會自媒體掙錢?


        點擊領取:程序員最新學習資料!

        下方二維碼關注我

        技術草根,堅持分享?編程,算法,架構

        朋友助力下!點個在看
        瀏覽 64
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            免费无码婬片AAAA片免费视频 | 就要干逼网站 | 日本三级片一区二区三区 | 日韩欧美123 | 色综合网站 | 国产无码精品合集 | 人人草视频在线观看 | 变态另类一区 | 卫生间大尺度做爰床戏 | 五月天婷婷无码 |