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

WebSocket無法注入屬性的問題及解決方案

 更新時間:2023年09月16日 14:47:12   作者:Muieay  
這篇文章主要介紹了WebSocket無法注入屬性的問題及解決方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

踩坑一:

原因:

是因為Spring對象的創(chuàng)建都是以單例模式創(chuàng)建的,在啟動時只創(chuàng)建一次WebSocket。而WebSocketServer在每個連接請求到來時,都會new一個對象。所以當你啟動項目時,你想要注入的對象已經(jīng)注入進去,但是當用戶連接是,新創(chuàng)建的websocket對象沒有你要注入的對象,所以會報NullPointerException

解決:

通過static關鍵字讓webSocketService屬于WebSocketServer類

private static WebSocketService webSocketService; //通過static關鍵字讓webSocketService屬于WebSocketServer類
@Autowired//注入到WebSocketServer類的webSocketService屬性里
public void setKefuService(WebSocketService webSocketService){
    WebSocketServer.webSocketService= webSocketService;
}

踩坑二:

使用@ServerEndpoint聲明的websocket服務器中自動注入

  • 錯誤方法,這樣無法從容器中獲取
@ServerEndpoint(value = "/chat/{username}")
@Service
public class WebSocketServer {
    @Resource // @Autowired
    private RabbitTemplate rabbitTemplate;  //null
}
  • 解決:使用上下文獲取
@ServerEndpoint(value = "/chat/{username}")
@Service
public class WebSocketServer {
    /*
     * 提供一個spring context上下文(解決方案)
     */
    private static ApplicationContext context;
    public static void setApplicationContext(ApplicationContext applicationContext) {
        WebSocketServer.context = applicationContext;
    }
}
  • 在啟動類中傳入上下文
@SpringBootApplication
public class TalkApplication {
    public static void main(String[] args) {
        //解決springboot和websocket之間使用@autowired注入為空問題
        ConfigurableApplicationContext applicationContext =
                SpringApplication.run(TalkApplication.class, args);
        //這里將Spring Application注入到websocket類中定義的Application中。
        WebSocketServer.setApplicationContext(applicationContext);
    }
}
  • 在使用的地方通過上下文去獲取服務context.getBean();
public void sendSimpleQueue(String message) {
    String queueName = "talk";
    // 在使用的地方通過上下文去獲取服務context.getBean();
    RabbitTemplate rabbitTemplate = context.getBean(RabbitTemplate.class);
    rabbitTemplate.convertAndSend(queueName, message);
}

到此這篇關于WebSocket無法注入屬性的文章就介紹到這了,更多相關WebSocket無法注入屬性內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決springmvc使用@PathVariable路徑匹配問題

    解決springmvc使用@PathVariable路徑匹配問題

    這篇文章主要介紹了解決springmvc使用@PathVariable路徑匹配問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java多線程中的原子類屬性說明

    Java多線程中的原子類屬性說明

    這篇文章主要介紹了Java多線程中的原子類屬性說明,對多線程訪問同一個變量,我們需要加鎖,而鎖是比較消耗性能的,JDk1.5之后,新增的原子操作類提供了一種用法簡單、性能高效、線程安全地更新一個變量的方式,需要的朋友可以參考下
    2023-10-10
  • 關于單例模式懶漢式和餓漢式的區(qū)別及說明

    關于單例模式懶漢式和餓漢式的區(qū)別及說明

    這篇文章主要介紹了關于單例模式懶漢式和餓漢式的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java參數(shù)傳值代碼舉例

    java參數(shù)傳值代碼舉例

    在編程中往方法中傳遞參數(shù)的方法往往有兩種,一種是值傳遞,一種是引用傳遞,而在java中所有的參數(shù)傳遞全部都是值傳遞,這篇文章主要給大家介紹了關于java參數(shù)傳值的相關資料,需要的朋友可以參考下
    2024-03-03
  • Java根據(jù)正整數(shù)的位數(shù)并逆序打印出各位數(shù)字

    Java根據(jù)正整數(shù)的位數(shù)并逆序打印出各位數(shù)字

    給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字,需要的朋友可以參考下
    2017-02-02
  • Spring Cloud 服務網(wǎng)關Zuul的實現(xiàn)

    Spring Cloud 服務網(wǎng)關Zuul的實現(xiàn)

    這篇文章主要介紹了Spring Cloud 服務網(wǎng)關Zuul的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Netty?拆包沾包問題解決方案詳解

    Netty?拆包沾包問題解決方案詳解

    這篇文章主要為大家介紹了Netty?拆包沾包問題解決方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • MapStruct處理Java中實體與模型間不匹配屬性轉換的方法

    MapStruct處理Java中實體與模型間不匹配屬性轉換的方法

    今天小編就為大家分享一篇關于MapStruct處理Java中實體與模型間不匹配屬性轉換的方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • SpringBoot實現(xiàn)文件上傳并返回url鏈接的示例代碼

    SpringBoot實現(xiàn)文件上傳并返回url鏈接的示例代碼

    文件上傳,當我們選擇了某一個圖片文件之后,這個文件就會上傳到服務器,從而完成文件上傳的操作,是指將本地圖片、視頻、音頻等文件上傳到服務器,供其他用戶瀏覽或下載的過程,本文給大家介紹了SpringBoot實現(xiàn)文件上傳并返回url鏈接,需要的朋友可以參考下
    2024-11-11
  • Java面試必問之ThreadLocal終極篇分享

    Java面試必問之ThreadLocal終極篇分享

    ThreadLocal是什么呢?其實ThreadLocal并非是一個線程的本地實現(xiàn)版本,它并不是一個Thread,而是thread local variable(線程局部變量),這篇文章主要給大家介紹了關于Java面試必問之ThreadLocal終極篇的相關資料,需要的朋友可以參考下
    2021-10-10

最新評論

临沧市| 元氏县| 高青县| 托里县| 大洼县| 越西县| 高清| 英超| 二连浩特市| 渑池县| 理塘县| 科尔| 南和县| 磴口县| 富川| 墨玉县| 雅安市| 莱州市| 滦平县| 共和县| 绥宁县| 汪清县| 英吉沙县| 罗江县| 凤台县| 永登县| 金乡县| 襄汾县| 来宾市| 休宁县| 康定县| 武乡县| 崇左市| 梨树县| 隆安县| 遵化市| 怀集县| 新营市| 剑阁县| 临清市| 弥勒县|