1. 程式人生 > >Spring Dubbo 註解無效,空指標

Spring Dubbo 註解無效,空指標

由於將來的專案將使用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>