最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot?靜態(tài)方法中使用@Autowired注入方式

 更新時間:2022年02月14日 10:55:53   作者:堯上有農(nóng)  
這篇文章主要介紹了springboot?靜態(tài)方法中使用@Autowired注入方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

靜態(tài)方法使用@Autowired注入

@Component
public class StructUtil {
    private static StructService structService;
    private static List<StructInfo> structInfos;
	
	// 通過重寫set注入
    @Autowired
    public void setStructService(StructService structService){
        StructUtil.structService = structService;
    }
    public static List<StructInfo> getStruct(){
        if(null==structInfos){
            structInfos = structService.getStruct();
        }
        return structInfos;
    }
}

靜態(tài)方法使用@Autowired注入的類

在寫公眾號開發(fā)的時候,有一個處理get請求,我想使用Spring提供的RestTemplate處理發(fā)送;

原來是這樣的

@Component
public ?class WeChatContant {
@Autowired
? ? private RestTemplate restTemplate;
?/**
? ? ?* 編寫Get請求的方法。但沒有參數(shù)傳遞的時候,可以使用Get請求
? ? ?*
? ? ?* @param url 需要請求的URL
? ? ?* @return 將請求URL后返回的數(shù)據(jù),轉(zhuǎn)為JSON格式,并return
? ? ?*/
? ? public ?JSONObject doGerStr(String url) throws IOException {
? ? ? ? ResponseEntity responseEntity = restTemplate.getForEntity
? ? ? ? ? ? ? ? (
? ? ? ? ? ? ? ? ? ? ? ? url,
? ? ? ? ? ? ? ? ? ? ? ? String.class
? ? ? ? ? ? ? ? );
? ? ? ? Object body = responseEntity.getBody();
? ? ? ? assert body != null;
? ? ? ? JSONObject jsonObject = JSONObject.fromObject(body);
? ? ? ? System.out.println(11);
? ? ? ? return jsonObject;
? ? }
}

但是到這里的話restTemplate這個值為空,最后導致空指針異常。發(fā)生的原因是

static模塊會被引入,當class加載后。你的component組件的依賴還沒有初始化。

(你的依賴都是null)

解決方法

可以使用@PostConstruct這個注解解決

1,@PostConstruct 注解的方法在加載類的構(gòu)造函數(shù)之后執(zhí)行,也就是在加載了構(gòu)造函數(shù)之后,為此,可以使用@PostConstruct注解一個方法來完成初始化,@PostConstruct注解的方法將會在依賴注入完成后被自動調(diào)用。

2,執(zhí)行優(yōu)先級高于非靜態(tài)的初始化塊,它會在類初始化(類加載的初始化階段)的時候執(zhí)行一次,執(zhí)行完成便銷毀,它僅能初始化類變量,即static修飾的數(shù)據(jù)成員。

自己理解的意思就是在component組件都加載完之后再加載

修改過后的代碼如下

@Component
public ?class WeChatContant {
?? ?@Autowired
? ? private RestTemplate restTemplate;
? ? private static RestTemplate restTemplateemp;
? ? @PostConstruct
? ? public void init(){
? ? ? ? restTemplateemp ?= restTemplate;
? ? }
? ? /**
? ? ?* 編寫Get請求的方法。但沒有參數(shù)傳遞的時候,可以使用Get請求
? ? ?*
? ? ?* @param url 需要請求的URL
? ? ?* @return 將請求URL后返回的數(shù)據(jù),轉(zhuǎn)為JSON格式,并return
? ? ?*/
? ? public static JSONObject doGerStr(String url) throws IOException {
? ? ? ? ResponseEntity responseEntity = restTemplateemp.getForEntity
? ? ? ? ? ? ? ? (
? ? ? ? ? ? ? ? ? ? ? ? url,
? ? ? ? ? ? ? ? ? ? ? ? String.class
? ? ? ? ? ? ? ? );
? ? ? ? Object body = responseEntity.getBody();
? ? ? ? assert body != null;
? ? ? ? JSONObject jsonObject = JSONObject.fromObject(body);
? ? ? ? System.out.println(11);
? ? ? ? return jsonObject;
? ? }
}

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

相關(guān)文章

  • Java編寫計算器的常見方法實例總結(jié)

    Java編寫計算器的常見方法實例總結(jié)

    這篇文章主要介紹了Java編寫計算器的常見方法,結(jié)合實例形式總結(jié)分析了Java實現(xiàn)計算器功能的常用方法,需要的朋友可以參考下
    2016-04-04
  • Java Spring集成MapStruct詳情

    Java Spring集成MapStruct詳情

    這篇文章主要介紹了Java Spring集成MapStruct詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Java中Easypoi實現(xiàn)excel多sheet表導入導出功能

    Java中Easypoi實現(xiàn)excel多sheet表導入導出功能

    這篇文章主要介紹了Java中Easypoi實現(xiàn)excel多sheet表導入導出功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • MyBatisPlus自定義SQL的實現(xiàn)

    MyBatisPlus自定義SQL的實現(xiàn)

    MyBatisPlus提供了自定義SQL功能,允許開發(fā)者在Mapper接口中定義方法,并通過XML文件或注解編寫SQL語句,本文詳解了如何在MP中使用自定義SQL,感興趣的可以了解一下
    2024-09-09
  • SpringSecurity配置HTTPS的實現(xiàn)

    SpringSecurity配置HTTPS的實現(xiàn)

    本文介紹了SpringBoot項目中配置HTTPS并集成SpringSecurity,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • java生成圖片驗證碼實例代碼

    java生成圖片驗證碼實例代碼

    這篇文章主要介紹了java生成圖片驗證碼實例代碼,驗證碼的種類有很多,問題驗證、短信驗證還有常見的圖片驗證,本文就為大家介紹生成圖片驗證碼最簡單方法,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Springboot內(nèi)嵌tomcat應(yīng)用原理深入分析

    Springboot內(nèi)嵌tomcat應(yīng)用原理深入分析

    懂得SpringBoot的童鞋應(yīng)該很清楚,不管應(yīng)用程序是屬于何種類型,都是一個Main方法走遍天下,對于web應(yīng)用,只需要引入spring-boot-starter-web中這個依賴,應(yīng)用程序就好像直接給我們來了個tomcat一樣,對于嵌入式Tomcat,其實也非常簡單,就是調(diào)用Tomcat提供的外部類
    2022-09-09
  • java實現(xiàn)服務(wù)器巡查的代碼

    java實現(xiàn)服務(wù)器巡查的代碼

    接到上級領(lǐng)導任務(wù),需要實現(xiàn)一個這樣的需求,一大批服務(wù)器,需要檢查服務(wù)器能否ping通,ssh密碼是否正常,以及檢查服務(wù)器的cpu,內(nèi)存,硬盤占用情況,下面通過java代碼實現(xiàn)服務(wù)器巡查功能,需要的朋友一起看看吧
    2021-12-12
  • springboot項目中實現(xiàn)訪問druid內(nèi)置監(jiān)控頁面

    springboot項目中實現(xiàn)訪問druid內(nèi)置監(jiān)控頁面

    這篇文章主要介紹了springboot項目中實現(xiàn)訪問druid內(nèi)置監(jiān)控頁面的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java Web開發(fā)防止多用戶重復(fù)登錄的完美解決方案

    Java Web開發(fā)防止多用戶重復(fù)登錄的完美解決方案

    在web項目開發(fā)中,很多情況下都可以讓同一個賬號信息在不同的登錄入口登錄很多次,這樣子做的不是很完善。一般解決這種情況有兩種解決方案,小編呢主要以第二種方式給大家介紹具體的實現(xiàn)方法,對java web 防止多用戶重復(fù)登錄的解決方案感興趣的朋友一起看看吧
    2016-11-11

最新評論

轮台县| 桦南县| 合作市| 汨罗市| 邵阳县| 贵德县| 若羌县| 辽阳市| 辽宁省| 南江县| 海阳市| 长泰县| 加查县| 诸暨市| 井冈山市| 丹巴县| 巍山| 邳州市| 乌鲁木齐市| 朝阳县| 中方县| 兴和县| 文昌市| 阿鲁科尔沁旗| 高青县| 于都县| 尼勒克县| 东乡| 卢氏县| 雅安市| 西峡县| 六枝特区| 城口县| 昆明市| 孟州市| 渝中区| 望奎县| 全州县| 沙洋县| 资阳市| 抚远县|