第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

自動(dòng)裝配不適用于非彈簧單例

自動(dòng)裝配不適用于非彈簧單例

收到一只叮咚 2023-12-13 17:18:42
我有一個(gè)非 spring public class MySingleton,它通過 Spring 注入了 MyBattis Mapper,如下所示:public class MySingleton{    @Autowired    MyMapper myMapper    private List<MyPojo> myList;    private MySingleton(){       myList = myMapper.getMyList();    }    public static MySingleton getInstance(){                if(instance == null){//first check            synchronized (MySingleton.class) {                if(instance == null){// second check                    instance = new MySingleton();                                   }                   }                   }        return instance;    }}myMapper從未初始化,它在構(gòu)造函數(shù)中始終為 null。我已經(jīng)測(cè)試過該 bean 是在我的 Singleton 之前聲明和創(chuàng)建的,我也嘗試過Configurable注釋,但沒有任何作用。誰能幫我?
查看完整描述

4 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

為了在非托管類上檢索托管 spring bean,我編寫了一個(gè)類來執(zhí)行您想要執(zhí)行的操作。


@Configuration

public class ApplicationContextProvider {


    private static ApplicationContext context;


    public ApplicationContextProvider(ApplicationContext context){

        ApplicationContextProvider.context = context;

    }


    public static ApplicationContext getContext() {

        if (Objects.isNull(ApplicationContextProvider.context)) {

            throw new IllegalStateException("Context isn't available!");

        }

        return ApplicationContextProvider.context;

    }


    public static <E> E getBean(Class<E> bean){

        return getContext().getBean(bean);

    }

}

要獲得托管 bean,只需ApplicationContextProvider.getBean(MyMapper.class);


查看完整回答
反對(duì) 回復(fù) 2023-12-13
?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以在非托管類中實(shí)現(xiàn)ApplicationContextAware接口。這將導(dǎo)致應(yīng)用程序上下文通過 setter 注入,并允許您訪問 Spring 生態(tài)系統(tǒng)的其余部分。

然后你就可以打電話了applicationContext.getBean(MyMapper.class);。


查看完整回答
反對(duì) 回復(fù) 2023-12-13
?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

對(duì)MyMapper類進(jìn)行@Component注解。這意味著當(dāng)使用基于注解的配置和類路徑掃描時(shí),Spring框架將自動(dòng)檢測(cè)這些類進(jìn)行依賴注入。



查看完整回答
反對(duì) 回復(fù) 2023-12-13
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

MyMapper 這個(gè)類沒有在 IOC 中注冊(cè)為 bean。首先使用@Component或XML文件將MyMapper類注冊(cè)為bean然后運(yùn)行



查看完整回答
反對(duì) 回復(fù) 2023-12-13
  • 4 回答
  • 0 關(guān)注
  • 220 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)