<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 1819字,需瀏覽 4分鐘

           ·

          2020-12-23 20:01


          點擊上方?泥瓦匠 關(guān)注我!

          老家浙江東海邊,靠海吃海,目前經(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容器感知技術(shù),這篇推薦看下。

          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)刪除重復(fù)記錄并且只保留一條?

          如何學(xué)會自媒體掙錢?


          點擊領(lǐng)取:程序員最新學(xué)習(xí)資料!

          下方二維碼關(guān)注我

          技術(shù)草根堅持分享?編程,算法,架構(gòu)

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

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月天亚洲AV | 成人国产精品秘 久久久 | 色婷婷国产精品一区在线观看 | 三级片在线麻豆 | 操逼18禁网站 |