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

springboot 如何解決static調(diào)用service為null

 更新時(shí)間:2021年06月09日 10:13:18   作者:離別又見離別  
這篇文章主要介紹了springboot 如何解決static調(diào)用service為null的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

springboot static調(diào)用service為null

@PostConstruct注解好多人以為是Spring提供的。其實(shí)是Java自己的注解。

Java中該注解的說明:

@PostConstruct該注解被用來修飾一個(gè)非靜態(tài)的void()方法。被@PostConstruct修飾的方法會(huì)在服務(wù)器加載Servlet的時(shí)候運(yùn)行,并且只會(huì)被服務(wù)器執(zhí)行一次。PostConstruct在構(gòu)造函數(shù)之后執(zhí)行,init()方法之前執(zhí)行。

通常我們會(huì)是在Spring框架中使用到@PostConstruct注解 該注解的方法在整個(gè)Bean初始化中的執(zhí)行順序:

Constructor(構(gòu)造方法) -> @Autowired(依賴注入) -> @PostConstruct(注釋的方法)

實(shí)戰(zhàn):

在靜態(tài)方法中調(diào)用依賴注入的Bean中的方法。

@Component
public class LeaveCode {
    @Autowired
    private IPlaLeaveApplyService plaLeaveApplyService;
    public static LeaveCode leaveCode;
    /**
     * 解決 static方法調(diào)用  注入的service為null
     */
    @PostConstruct
    public void init(){
        leaveCode = this;
        leaveCode.plaLeaveApplyService = this.plaLeaveApplyService;
    }
 }

SpringBoot 靜態(tài)類引入service 空指針/NULL

Spring注入service后,正常情況下非靜態(tài)方法是可以正常使用注冊(cè)的service的,當(dāng)時(shí)用靜態(tài)類引用的時(shí)候,靜態(tài)類static方法會(huì)將spring注入的service清空。

造成引用空指針的情況,如何解決呢?

@Component
public class UserUtils {
    @Autowired
    private UserService userService;
    private static UserUtils userUtils;
 
    @PostConstruct
    public void init() {
        userUtils = this;
        userUtils.userService = this.userService;
    }
}

使用:

User user = userUtils.userService.getUser(loginCode);

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

相關(guān)文章

  • Scala之Object的具體使用(小結(jié))

    Scala之Object的具體使用(小結(jié))

    這篇文章主要介紹了Scala之Object的具體使用(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • IDEA?Eval?Reset?使用方法匯總

    IDEA?Eval?Reset?使用方法匯總

    本文給大家介紹了IDEA?Eval?Reset?使用方法,安裝插件包括離線安裝方式和在線安裝方式,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Spring定時(shí)任務(wù)實(shí)現(xiàn)與配置(一)

    Spring定時(shí)任務(wù)實(shí)現(xiàn)與配置(一)

    這篇文章主要為大家詳細(xì)介紹了Spring定時(shí)任務(wù)的實(shí)現(xiàn)與配置第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 如何使用Jenkins編譯并打包SpringCloud微服務(wù)目錄

    如何使用Jenkins編譯并打包SpringCloud微服務(wù)目錄

    這篇文章主要介紹了如何使用Jenkins編譯并打包SpringCloud微服務(wù)目錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java多線程的實(shí)現(xiàn)方式詳解

    Java多線程的實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了Java多線程的實(shí)現(xiàn)方式詳解,線程就是進(jìn)程中的單個(gè)順序控制流,也可以理解成是一條執(zhí)行路徑,java中之所以有多線程機(jī)制,目的就是為了提高程序的處理效率,需要的朋友可以參考下
    2023-08-08
  • Java實(shí)現(xiàn)讀取項(xiàng)目中文件(.json或.properties)的方法詳解

    Java實(shí)現(xiàn)讀取項(xiàng)目中文件(.json或.properties)的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)讀取項(xiàng)目中文件的方法,例如.json或.properties,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-04-04
  • springBoot加入thymeleaf模板的方式

    springBoot加入thymeleaf模板的方式

    這篇文章主要介紹了springBoot加入thymeleaf模板的方式,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • java實(shí)現(xiàn)二維碼生成功能詳細(xì)示例

    java實(shí)現(xiàn)二維碼生成功能詳細(xì)示例

    這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)二維碼生成功能的相關(guān)資料,隨著信息化時(shí)代的到來,二維碼作為一種信息傳遞的工具,越來越受到人們的歡迎,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java實(shí)現(xiàn)將Object轉(zhuǎn)換成指定Class對(duì)象的操作代碼

    Java實(shí)現(xiàn)將Object轉(zhuǎn)換成指定Class對(duì)象的操作代碼

    這篇文章主要介紹了Java實(shí)現(xiàn)將Object轉(zhuǎn)換成指定Class對(duì)象的操作,在Java中,將Object轉(zhuǎn)換為指定類型的Class對(duì)象實(shí)際上是兩個(gè)不同概念的操作,由于你提到的“將Object轉(zhuǎn)換成指定Class對(duì)象”可能有些混淆,我將分別展示這兩種操作的示例代碼,需要的朋友可以參考下
    2024-09-09
  • httpclient重定向之后獲取網(wǎng)址信息示例

    httpclient重定向之后獲取網(wǎng)址信息示例

    使用HttpClient進(jìn)行127.0.0.1:8080地址的問題,然后該地址自動(dòng)重定向127.0.0.1:8080/mobserver,如何獲取該地址呢?使用HttpContext,下面是示例
    2014-02-02

最新評(píng)論