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

@Autowired注入為null的原因與解決方法

 更新時(shí)間:2023年09月25日 11:38:14   作者:我是周爍杰  
我們經(jīng)常會通過@Autowired注解將某個(gè)類注到另一個(gè)類中,但是會發(fā)現(xiàn)注不進(jìn)去,報(bào)NULL,所以本文就給大家分析了@Autowired 注入為null 的原因與解決方法,需要的朋友可以參考下

前言

我們經(jīng)常會通過@Autowired注解將某個(gè)類注到另一個(gè)類中,但是會發(fā)現(xiàn)注不進(jìn)去,報(bào)NULL。

原因

可能的原因有一下幾種:

(1)該類沒有托管給spring 管理

一般在類的上面添加@Component 就可以了

(2)你的這個(gè)類有被new出來的實(shí)例的,new 過的對象不會交給Spring容器管理 所以里面的 service或者dao注入不進(jìn)來。一般是指引用某些框架,你是繼承某個(gè)接口,但是這些框架默認(rèn)new過這個(gè)方法,比如MVC攔截的HandlerInterceptor類。

如果要new的這個(gè)類里有想用@autowired 自動注入的內(nèi)容,則最好不要去new這個(gè)類,否則自動注入無效,為null; 

解決方法

解決辦法:要用這個(gè)類的時(shí)候,這個(gè)類也用@autowired 自動注入

有時(shí)候你確實(shí)需要在這個(gè)new 的類去注入某些類,但是用@Autowired 又注入為null,這時(shí)候我們需要手動去弄Spring容器中的Bean實(shí)現(xiàn)ApplicationContextAware接口。

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class BeanUtils implements ApplicationContextAware  {
    protected static ApplicationContext applicationContext ;
    @Override
    public void setApplicationContext(ApplicationContext arg0) throws BeansException {
        if (applicationContext == null) {
            applicationContext = arg0;
        }
    }
    public static Object getBean(String name) {
        //name表示其他要注入的注解name名
        return applicationContext.getBean(name);
    }
    /**
     * 拿到ApplicationContext對象實(shí)例后就可以手動獲取Bean的注入實(shí)例對象
     */
    public static <T> T getBean(Class<T> clazz) {
        return applicationContext.getBean(clazz);
    }
}

案列:

SysDictService sysDictService = BeanUtils.getBean(SysDictService.class);

以上就是@Autowired注入為null的原因與解決方法的詳細(xì)內(nèi)容,更多關(guān)于@Autowired注入為null的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 利用Java實(shí)現(xiàn)解析網(wǎng)頁中的內(nèi)容

    利用Java實(shí)現(xiàn)解析網(wǎng)頁中的內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言做一個(gè)解析指定網(wǎng)址的網(wǎng)頁內(nèi)容小應(yīng)用,文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的可以嘗試下
    2022-10-10
  • MyBatis批量插入的三種方式比較總結(jié)

    MyBatis批量插入的三種方式比較總結(jié)

    由于項(xiàng)目需要生成多條數(shù)據(jù),并保存到數(shù)據(jù)庫當(dāng)中,所以就用到了MyBatis批量插入,下面這篇文章主要給大家介紹了關(guān)于MyBatis批量插入的三種方式的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Java?泛型考古?泛型擦除?包裝類詳細(xì)解析

    Java?泛型考古?泛型擦除?包裝類詳細(xì)解析

    泛型是在Java?SE?1.5引入的的新特性,本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型接口、泛型方法,本篇我們一起來學(xué)習(xí)泛型考古、泛型擦除、包裝類
    2022-03-03
  • java實(shí)現(xiàn)學(xué)生信息錄入界面

    java實(shí)現(xiàn)學(xué)生信息錄入界面

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)學(xué)生信息錄入界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Spring整合JPA與Hibernate流程詳解

    Spring整合JPA與Hibernate流程詳解

    這篇文章主要介紹了Spring整合Hibernate與JPA,在正式進(jìn)入Hibernate的高級應(yīng)用之前,需要了解聲明是數(shù)據(jù)模型與領(lǐng)域模型,這兩個(gè)概念將會幫助我們更好的理解實(shí)體對象的關(guān)聯(lián)關(guān)系映射
    2023-01-01
  • 詳解JAVA中轉(zhuǎn)義字符

    詳解JAVA中轉(zhuǎn)義字符

    本篇文章主要介紹了詳解JAVA中轉(zhuǎn)義字符,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Springboot 全局時(shí)間格式化操作

    Springboot 全局時(shí)間格式化操作

    這篇文章主要介紹了Springboot 全局時(shí)間格式化操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Mybatis-plus 批量插入太慢的問題解決(提升插入性能)

    Mybatis-plus 批量插入太慢的問題解決(提升插入性能)

    公司使用的Mybatis-Plus操作SQL,用過Mybatis-Plus的小伙伴一定知道他有很多API提供給我們使用,但是批量插入大數(shù)據(jù)太慢應(yīng)該怎么解決,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-11-11
  • spring中向一個(gè)單例bean中注入非單例bean的方法詳解

    spring中向一個(gè)單例bean中注入非單例bean的方法詳解

    Spring是先將Bean對象實(shí)例化之后,再設(shè)置對象屬性,所以會先調(diào)用他的無參構(gòu)造函數(shù)實(shí)例化,每個(gè)對象存在一個(gè)map中,當(dāng)遇到依賴,就去map中調(diào)用對應(yīng)的單例對象,這篇文章主要給大家介紹了關(guān)于spring中向一個(gè)單例bean中注入非單例bean的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • idea復(fù)制module(項(xiàng)目)并在一個(gè)窗口展示的教程詳解

    idea復(fù)制module(項(xiàng)目)并在一個(gè)窗口展示的教程詳解

    這篇文章主要介紹了idea復(fù)制module(項(xiàng)目)并在一個(gè)窗口展示的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評論