websocket 使用 spring 的service層 ,進而調用里面的 dao層 來操作數據庫 ,包括redis、mysql等通用


1.前言

描述一下今天用websocket踩得坑  ---》空指針異常!

我想在websocket里面使用service 層的接口,從中獲取數據庫的一些信息  ,

使用 @Autowired 注解 接口  ,報錯 空指針異常  !!!

查過資料才發現 ,websocket 無法使用注解注入bean ,因為每一次websocket的握手連接就像是new了一個對象,對是全新的

2.網上查找的代碼 測試無法使用,截圖留下筆記

然后去百度 博客 尋找解決答案  ,基本都是要重寫  ApplicationContextAware 接口的方法  ,

測試發現仍然報空指針異常,抓取異常內容甚至為空找不到異常原因。。。

網上 提供的代碼截圖 :

 

 使用方法:

 

 報錯結果;

 

 

 

 

3 .真正的解決辦法  :

使用 ContextLoader.getCurrentWebApplicationContext().getBean( 【服務名稱.class】);  即可

 

 就這么簡單,效率還高 !!!

測試截圖:

 

 但是有一個注意的地方,經過測試  這里的 getbean()方法里面只能使用 service的接口名,並且以 【 service名稱.class 】 為key才可以, 無法使用  【serviceImpl.class】

並且  字符串 key也無法使用  【“service”】 【 “serviceImpl” 】都不能使用

原因不知道  ,百度 、博客都找不到關於這個的資料  ,以此為記錄!  

-------------------------

幸好 ,可以正常使用  ,感動的要哭

-------------------------

 

 

 

 

這得感謝一位博主的知識分享  ,原址  :https://blog.csdn.net/kxj19980524/article/details/85108047   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM