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

基于spring注入為null的原因及解決方案

 更新時(shí)間:2021年08月28日 09:35:35   作者:CMM1  
這篇文章主要介紹了spring注入為null的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

spring注入為null

解決方法用到@PostConstruct注解,平常沒(méi)接觸過(guò),寫(xiě)博客記錄一下。

場(chǎng)景

在使用Aviator時(shí)需要自定義函數(shù),但是在使用自定函數(shù)的時(shí)候發(fā)現(xiàn)@Resource注入的類(lèi)是null,使用的框架是springboot所以沒(méi)什么好配置的,在網(wǎng)上找了下原因,找到其中一個(gè)“在spring中如果使用new創(chuàng)建一個(gè)對(duì)象時(shí),這個(gè)對(duì)象將不在受spring管理器管理”的博客,所以檢查了下自己是否使用new方式管理bean。

經(jīng)檢查找出原因

在這里插入圖片描述

在項(xiàng)目啟動(dòng)時(shí)我用了靜態(tài)塊用new方式管理了bean。

但是使用靜態(tài)塊必須使用靜態(tài)變量,而spring無(wú)法注入靜態(tài)變量(有方法可以實(shí)現(xiàn),但是比較麻煩)。

解決方法

將靜態(tài)塊改造成方法,并且使用注入方式傳入對(duì)象,然后使用@PostConstruct注解,在將在依賴注入完成后,自動(dòng)執(zhí)行被注解的方法,這樣就達(dá)到了啟動(dòng)項(xiàng)目注冊(cè)函數(shù)的效果。

在這里插入圖片描述

@PostConstruct:

被@PostConstruct修飾的方法會(huì)在服務(wù)器加載Servlet的時(shí)候運(yùn)行,并且只會(huì)被服務(wù)器執(zhí)行一次。PostConstruct在構(gòu)造函數(shù)之后執(zhí)行,init()方法之前執(zhí)行。

Spring注入的屬性為null可能的情況

Spring注入的屬性為null可能的情況,使用注解方式。

保證Bean能夠交付給Spring容器

1、你的組件上面是否加入了合適的注解。例如:@Service, @Component等。

2、檢查一下你context-scan掃描器配置的路徑是否正確。(SpringBoot檢查一下你的包是否和主入口程序在一個(gè)目錄下,并且檢@ComponentScan配置的路徑是否正確)

檢查實(shí)例化的方式

1、很低級(jí)問(wèn)題,但是一不注意就犯了。檢查是不是new了一個(gè)對(duì)象,這樣的話就繞過(guò)了容器的依賴注入過(guò)程,也可能出現(xiàn)獲取不到應(yīng)有的屬性這種情況。

說(shuō)明:Spring是一個(gè)bean的容器,由容器負(fù)責(zé)對(duì)象的初始化和依賴注入。當(dāng)我們想要從中獲取一個(gè)Bean的實(shí)例時(shí),就從Spring容器中獲取。

檢查注入的位置

1、把@Autowired注解加在了一個(gè)靜態(tài)屬性上,注入為空。

說(shuō)明:Spring幫我們做屬性的自動(dòng)注入,是在幫助我們實(shí)例化Bean之后完成的。而static修飾該屬性是歸屬于類(lèi)而不是實(shí)例的。當(dāng)Spring我們想給static屬性注入值的時(shí)候,對(duì)象還沒(méi)創(chuàng)建,這種情況一定會(huì)出現(xiàn)注入為空的情況。

2、在應(yīng)用的Filter或Listener中使用了@Autowired ,注入為空web容器啟動(dòng)是按照一定順序的,即:Listener --> Filter -->Servlet。

因?yàn)镕ilter和Listener加載順序優(yōu)先于spring容器初始化實(shí)例,所以會(huì)出現(xiàn)null。Spring的入口就在Servlet里??梢杂肁pplicationContext根據(jù)bean名稱(注意名稱為實(shí)現(xiàn)類(lèi)而不是接口)去獲取bean

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中while循環(huán)的使用方法舉例詳解

    Java中while循環(huán)的使用方法舉例詳解

    在Java編程語(yǔ)言中,while循環(huán)是基礎(chǔ)控制結(jié)構(gòu)之一,用于重復(fù)執(zhí)行代碼塊直至滿足特定條件,掌握其使用是編程的基礎(chǔ),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • java如何強(qiáng)制刪除java程序占用的文件

    java如何強(qiáng)制刪除java程序占用的文件

    這篇文章主要介紹了java如何強(qiáng)制刪除java程序占用的文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • java+SpringBoot設(shè)計(jì)實(shí)現(xiàn)評(píng)教系統(tǒng)

    java+SpringBoot設(shè)計(jì)實(shí)現(xiàn)評(píng)教系統(tǒng)

    這篇文章主要介紹了用過(guò)Java SpringBoot實(shí)現(xiàn)一個(gè)簡(jiǎn)單的評(píng)價(jià)系統(tǒng),可以做到學(xué)生管理、教師管理、評(píng)教管理、指標(biāo)管理、課程管理等。感興趣的可以了解一下
    2021-12-12
  • SpringCloud Bus 消息總線的具體使用

    SpringCloud Bus 消息總線的具體使用

    這篇文章主要介紹了SpringCloud Bus 消息總線的具體使用,詳細(xì)的介紹了什么是消息總線以及具體配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Java字符編碼原理(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

    Java字符編碼原理(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

    Java開(kāi)發(fā)中,常常會(huì)遇到亂碼的問(wèn)題,一旦遇到這種問(wèn)題,常常比較煩惱,大家都不想承認(rèn)是自己的代碼問(wèn)題,其實(shí)搞明白編碼的本質(zhì)過(guò)程就簡(jiǎn)單多了,接下來(lái)小編給大家?guī)?lái)java字符編碼原理,要求看看吧
    2017-04-04
  • 如何通過(guò)XML方式配置AOP過(guò)程解析

    如何通過(guò)XML方式配置AOP過(guò)程解析

    這篇文章主要介紹了如何通過(guò)XML方式配置AOP過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 淺談Java 中的引用類(lèi)型

    淺談Java 中的引用類(lèi)型

    Java開(kāi)發(fā)者肯定都很熟悉java中的4種引用類(lèi)型,它們從強(qiáng)到弱分別是:強(qiáng)引用、軟引用、弱引用和虛引用,下面我們?cè)敿?xì)看看這些引用類(lèi)型
    2020-02-02
  • Java 模擬cookie登陸簡(jiǎn)單操作示例

    Java 模擬cookie登陸簡(jiǎn)單操作示例

    這篇文章主要介紹了Java 模擬cookie登陸簡(jiǎn)單操作,結(jié)合實(shí)例形式分析了Java 模擬cookie登陸的相關(guān)原理與基本實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-03-03
  • HDFS-Hadoop NameNode高可用機(jī)制

    HDFS-Hadoop NameNode高可用機(jī)制

    本文詳細(xì)介紹了Hadoop NameNode高可用機(jī)制的各個(gè)方面內(nèi)容,NameNode 的可用性直接決定了 Hadoop 集群的可用性,感興趣的小伙伴可以參考本文章
    2021-08-08
  • 為何Java單例模式我只推薦兩種

    為何Java單例模式我只推薦兩種

    這篇文章主要給大家介紹了關(guān)于Java單例模式推薦的兩種模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論