1. 程式人生 > >netty學習----spring整合netty無法注入bean的問題解決

netty學習----spring整合netty無法注入bean的問題解決

作者在使用netty整合spring注入呼叫時普通的@Autowired一直bean注入為null,這裡我只是記錄針對netty注入spring無法注入bean的解決發放,具體底層實現,希望大神不吝賜教

首先上解決程式碼塊,copy過去就可以直接用

@Component
public class NettyWebSocketServerHandler extends SimpleChannelInboundHandler<TextWebSocketFrame> {


    public static NettyWebSocketServerHandler nettyWebSocketServerHandler;

    //1.正常注入[記得主類也需要使用@Component註解]
    @Autowired
    private IUserInfoService appUserService;
    @Autowired
    private IUserCoinRecordService userCoinRecordService;

    //2.初始化構造方法一定要有
    public NettyWebSocketServerHandler() {

    }

    //3.容器初始化的時候進行執行-這裡是重點
    @PostConstruct
    public void init() {
        nettyWebSocketServerHandler = this;
        nettyWebSocketServerHandler.appUserService = this.appUserService;
        nettyWebSocketServerHandler.userCoinRecordService = this.userCoinRecordService;
    }

    /**
     * 管道初始化
     *
     * @param ctx
     * @param msg
     * @throws Exception
     */
    @Override
    protected void channelRead0(ChannelHandlerContext ctx, TextWebSocketFrame msg) throws Exception {
        System.out.println("收到訊息: " + msg.text());
        String info = DataParamsComm.analysisData(msg.text());
        System.out.println("解密資料:" + info);
        //4.這裡是呼叫方法需要通過另一個bean去呼叫,你真正使用的bean
System.out.println(nettyWebSocketServerHandler.appUserService.findByUserId(500001L));
        ctx.channel().writeAndFlush(new TextWebSocketFrame("接收到的內容: " + JSON.toJSONString(nettyWebSocketServerHandler.appUserService.findByUserId(500001L))));

    }
}

這樣就解決了spring整合netty無法注入bean的問題,現在bean在netty中正常的業務呼叫了

相關推薦

netty學習----spring整合netty無法注入bean的問題解決

作者在使用netty整合spring注入呼叫時普通的@Autowired一直bean注入為null,這裡我只是記錄針對netty注入spring無法注入bean的解決發放,具體底層實現,希望大神不吝賜教 首先上解決程式碼塊,copy過去就可以直接用 @Component

maven整合CXF WebService+Spring @Resource無法注入問題解決方法

筆者是一個出道不長的小碼農.工作中需要用的maven 結合jetty容器進行開發的前提背景下 廢話不多說直接上程式碼 更改前的web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=

spring抽象類中注入bean

在使用spring的時候,有時由於設計的需要,需要使用抽象類(比如模板方法模式),但在抽象類中實現方法是需要依賴其他的介面或類的方法,這時就需要對依賴的介面或類進行注入,需要注意以下內容: 在抽象類中需要注入(@autowire),在繼承了該抽象類的子類中同樣需要再次注入。比如當前專案中,使用者

Netty(二) springboot 整合netty編寫時間伺服器

這個例子與上個例子( springboot 整合netty做心跳檢測)最大的不同就是,服務端傳送包含32位整數的訊息,而不接收任何請求,並在傳送訊息後關閉連線。 因為我們將忽略任何接收到的資料,一旦建立

CXF學習(Spring整合)

一、相關jar包依賴 <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-core

Spring 整合hibernate 無法自動建立表,控制檯沒有報錯

症狀 Spring 整合hibernate 無法自動建立表,控制檯沒有報錯 百度了幾天了 主要有一下幾個原因 1、  注意name="hibernate.dialect" 而不能是name="dialect"     &n

springboot 在@Autowire無法注入bean時的臨時處理辦法

問題由來: 在用netty寫一個網路程式設計專案的時候,需要用到mongoTemplate這個springdata提供的mongodb的操作類。但是這個只能由springboot來注入,但是netty又會進行new操作,使得@Autowire無法正常工作。

解決SpringBoot使用Quartz無法注入Bean的問題

依賴 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId>

**執行緒裡面使用註解(執行緒裡面spring使用註解無法注入值的解決辦法)**

今天在使用SSM框架(spring/springmvc/mybatis)進行開發時,自己也是第一次使用,所以遇到的問題也比較多啊········· 我今天是在一條執行緒裡面使用註解時,發現一直報空指標異常,仔細看了一下發現使用註解時並沒有注入值,所以才一直空指

Spring在Thread中注入Bean無效的解決方式[嗡湯圓的小筆記]

在Spring專案中,有時需要新開執行緒完成一些複雜任務,而執行緒中可能需要注入一些服務。而通過Spring注入來管理和使用服務是較為合理的方式。但是若直接在Thread子類中通過註解方式注入Bean是無效的。 因為Spring本身預設Bean為單例模式構建,

Netty學習(三)-Netty重要介面講解

上一節我們寫了一個HelloWorld,對於Netty的執行有了一定的瞭解,知道Netty是如何啟動客戶端和伺服器端。這一節我們簡要的講解一下幾個重要的介面,初步探討Netty的執行機制,當然剛學Netty就深入原理肯定是很枯燥的,所以我們就點到為止。 1

在servlet中使用spring註解@Autowired自動注入bean

一,使用@Autowired注入需要使用的bean。    @Autowired     private  InstitutionService institutionService;          @Autowired     private UserService

訊息佇列監聽器無法注入bean的問題解決

在使用ActiveMq或者其他訊息佇列的過程中,第一步對ActiveMq進行初始化的過程是放在ContextListener的初始化的時候的; 然而當mq接收到訊息的時候觸發getMqMsg方法的時候報錯null,除錯發現MqManageService根本沒有獲取到,我的

問題:使用@Autowired無法注入Bean物件

問題 在公司的一個專案開發時,遇到了一個類的屬性無法注入的問題 public class DemoController extends BaseController implements BussinessProcessHandler { @Autow

系統學習Spring(二)——裝配Bean

任何一個成功的應用都是由多個為了實現某個業務目標而相互協作的元件構成的,這些元件必須相互瞭解、能夠相互協作完成工作。 例如,在一個線上購物系統中,訂單管理元件需要與產品管理元件以及信用卡認證元件協作;這些元件還需要跟資料庫元件協作從而進行資料庫讀寫操作。 在

Spring整合XFire的注入問題

給WebService注入其他類的時候,報空指標錯誤。 web.xml配置如下: <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class>or

netty學習一:用netty構造http服務的小demo

概述 netty可以支援http、socket、websocket,本文會做一個小demo,簡單介紹一下如何用netty搭建一個http服務。 netty雖然可以提供http服務,但是相比spring mvc、struts2等框架,netty顯得比較底層

spring 使用@value無法注入的問題

@value是讀取配置檔案的值 1,首先spring需要掃描指定的配置檔案 載入配置檔案 <context:property-placeholder location="

Spring系列之新註解配置+Spring整合junit+註解注入

## Spring系列之註解配置 **Spring是輕程式碼而重配置的框架,配置比較繁重,影響開發效率,所以註解開發是一種趨勢,註解代替xml配置檔案可以簡化配置,提高開發效率** **你本來要寫一段很長的程式碼來構造一個Beam物件,但是如果使用註解的話只要使用一個註解符號即可** ![在這裡插入圖

pojo類無法注入service解決示例

pojo類無法注入service解決示例 歡迎關注作者部落格 簡書傳送門   本示例解決springboot中service無法注入普通jopo的問題。   不囉嗦,直接上程式碼。   如果該示例幫您解決了問題,請助推哦。 pojo類: package