Spring Dubbo 註解無效,空指標
阿新 • • 發佈:2019-01-26
由於將來的專案將使用spring boot技術為主題,這幾天嘗試了一下springboot+dubbo來完成業務架構的分層,這篇文章主要記錄springboot搭建過程中遇到的dubbo空指標問題。
首先建議遇到此問題的通道,看一下這篇文章
http://www.oschina.net/question/1011127_144093?fromerr=7pRd3NKv
這篇文章雖然沒有解決掉springboot的配置問題,但是為解決這個問題提供了思路,springboot+dubbo的空指標問題,主要原因:spring 掃描的時候根本無法識別@Reference ,同一方面,dubbo的掃描也無法識別Spring @Controller ,所以兩個掃描的順序要排列好,如果先掃了controller,這時候把控制器都例項化好了,再掃dubbo的服務,就會出現空指標。
下面提供一下程式碼:
dubbo-provider.xml:提供者先掃描spring框架,完成spring部分的掃描,然後將為dubbo框架提供服務;消費者部分相反,先掃描dubbo服務,後掃描spring部分~
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!-- 提供方應用資訊,用於計算依賴關係 --> <span style="white-space:pre"> </span><dubbo:application name="dubbo_logicprovider" /> <span style="white-space:pre"> </span> <span style="white-space:pre"> </span><!-- 使用zookeeper註冊中心暴露服務地址 --> <span style="white-space:pre"> </span><dubbo:registry address="zookeeper://192.168.1.209:2181" /> <span style="white-space:pre"> </span><!-- 用dubbo協議在20880埠暴露服務 --> <span style="white-space:pre"> </span><dubbo:protocol name="dubbo" port="20881" />
<context:component-scan base-package="com.dhy.App"/>
<dubbo:annotation package="com.dhy.App.dao" />
</beans>