欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java使用@Autowired注解獲取對(duì)象為null的幾種情況及解決方法

 更新時(shí)間:2023年09月02日 14:56:59   作者:小孫的Blog  
這篇文章主要給大家介紹了使用@Autowired注解獲取對(duì)象為null的幾種情況以及?解決方法,文中有詳細(xì)的代碼示例講解,具有一定的參考價(jià)值,需要的朋友可以參考下

情況1:Bean對(duì)象并沒(méi)有交給Spring管理

  • 檢查@Autowired的對(duì)象是否已經(jīng)被注入到Spring容器中了;
  • 確保使用@Autowired注解的對(duì)象也已存在Spring的容器中。

情況2:對(duì)象使用過(guò)new關(guān)鍵字

這是我遇到的情況,當(dāng)一個(gè)對(duì)象使用過(guò)關(guān)鍵new時(shí),它是不能被Spring所管理的。

所以如果在這些對(duì)象中使用@Autowired去注入對(duì)象,得到的結(jié)果也是為null。

就比如我在項(xiàng)目中遇到的情況:

@Slf4j
@Component
public class MyCrawler extends WebCrawler {
	@Autowired
    private BookFeignService bookFeignSerivce;
    @Override
    public boolean shouldVisit(Page referringPage, WebURL url) {
		// ....
    }
    @Override
    public void visit(Page page) {
     	// ....
    }
}

該類(lèi)繼承了一個(gè)WebCrawler,其實(shí)就是一個(gè)第三方框架,在我執(zhí)行某個(gè)功能的時(shí)候,這些被重寫(xiě)的方法就會(huì)被其內(nèi)部自動(dòng)調(diào)用。

在該類(lèi)中使用@Autowired注入對(duì)象,就會(huì)看到注入的對(duì)象為null,盡管這些對(duì)象已經(jīng)在Spring容器中存在了。

主要原因就是因?yàn)樵擃?lèi)繼承了一個(gè)第三方框架,在執(zhí)行的過(guò)程中,它是被人家框架內(nèi)部創(chuàng)建實(shí)例然后去調(diào)用的,這就導(dǎo)致了可能在內(nèi)部new過(guò)這個(gè)對(duì)象了,所以就導(dǎo)致了@Component對(duì)這個(gè)類(lèi)根本不起作用。

解決方法

那么,如果我們非要在該類(lèi)中獲取到Spring容器中的對(duì)象,應(yīng)該怎么辦?
寫(xiě)一個(gè)工具類(lèi):

@Component
public class MyBeanUtil implements ApplicationContextAware {
    protected static ApplicationContext applicationContext;
    @Override
    public void setApplicationContext(ApplicationContext app) throws BeansException {
        if (applicationContext == null) {
            applicationContext = app;
        }
    }
    /**
     * 通過(guò)類(lèi)的class從容器中手動(dòng)獲取對(duì)象
     */
    public static <T> T getBean(Class<T> clazz) {
        return applicationContext.getBean(clazz);
    }
}

通過(guò)getBean這個(gè)方法就可以獲取到Spring容器中的對(duì)象了。

注意:該類(lèi)一定要加@Component注解。

到此這篇關(guān)于Java使用@Autowired注解獲取對(duì)象為null的幾種情況及解決方法的文章就介紹到這了,更多相關(guān)Java @Autowired獲取對(duì)象為null內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Eclipse搭建spring開(kāi)發(fā)環(huán)境圖文教程(推薦)

    Eclipse搭建spring開(kāi)發(fā)環(huán)境圖文教程(推薦)

    下面小編就為大家?guī)?lái)一篇Eclipse搭建spring開(kāi)發(fā)環(huán)境圖文教程(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • HttpsURLConnection上傳文件流(實(shí)例講解)

    HttpsURLConnection上傳文件流(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇HttpsURLConnection上傳文件流(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • springboot配置多數(shù)據(jù)源(靜態(tài)和動(dòng)態(tài)數(shù)據(jù)源)

    springboot配置多數(shù)據(jù)源(靜態(tài)和動(dòng)態(tài)數(shù)據(jù)源)

    在開(kāi)發(fā)過(guò)程中,很多時(shí)候都會(huì)有垮數(shù)據(jù)庫(kù)操作數(shù)據(jù)的情況,需要同時(shí)配置多套數(shù)據(jù)源,本文主要介紹了springboot配置多數(shù)據(jù)源(靜態(tài)和動(dòng)態(tài)數(shù)據(jù)源),感興趣的可以了解一下
    2023-09-09
  • java開(kāi)發(fā)微信公眾號(hào)支付

    java開(kāi)發(fā)微信公眾號(hào)支付

    這篇文章主要給大家結(jié)合微信支付接口開(kāi)發(fā)的實(shí)踐,從獲取用戶授權(quán)到各主要接口的使用方法等方面介紹微信支付的關(guān)鍵點(diǎn)技術(shù),有需要的小伙伴可以參考下
    2015-08-08
  • Java實(shí)現(xiàn)抽獎(jiǎng)算法的示例代碼

    Java實(shí)現(xiàn)抽獎(jiǎng)算法的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)抽獎(jiǎng)算法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-04-04
  • Mybatis 一級(jí)緩存與二級(jí)緩存的實(shí)現(xiàn)

    Mybatis 一級(jí)緩存與二級(jí)緩存的實(shí)現(xiàn)

    mybatis作為一個(gè)流行的持久化工具,緩存必然是缺少不了的組件。通過(guò)這篇文章,就讓我們來(lái)了解一下一級(jí)緩存與二級(jí)緩存的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Springboot項(xiàng)目中kaptcha驗(yàn)證碼的使用方式

    Springboot項(xiàng)目中kaptcha驗(yàn)證碼的使用方式

    這篇文章主要介紹了Springboot項(xiàng)目中kaptcha驗(yàn)證碼的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java修飾類(lèi)的使用方法以及使用技巧(分享)

    java修飾類(lèi)的使用方法以及使用技巧(分享)

    下面小編就為大家?guī)?lái)一篇java修飾類(lèi)的使用方法以及使用技巧(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • Java中方法優(yōu)先調(diào)用可選參數(shù)還是固定參數(shù)

    Java中方法優(yōu)先調(diào)用可選參數(shù)還是固定參數(shù)

    這篇文章主要介紹了Java中方法優(yōu)先調(diào)用可選參數(shù)還是固定參數(shù),可選參數(shù)是?JDK?5?中新增的特性,也叫變長(zhǎng)參數(shù)或可變參數(shù),固定參數(shù)的概念恰好與可選參數(shù)相反,固定參數(shù)也就是普通的參,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • spring 整合JDBC和AOP事務(wù)的方法

    spring 整合JDBC和AOP事務(wù)的方法

    這篇文章主要介紹了spring 整合JDBC和AOP事務(wù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07

最新評(píng)論