dubbo XML文件引用:@ImportResource("classpath:dubbo-consum.xml")java
有的springboot版本會出現,dubbo註冊服務的xml文件中引用的service報錯不能注入,須要加入<dubbo:annotation package="com.dubbo.*" />git
dubbo XSD文件須要手動導入到開發工具中github
最頭疼的一個,就是版本衝突,首先是dubbo與spring的衝突,而後是zk與sf4j的衝突。web
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring.boot.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency>
上面的maven引入springboot用的版本是1.3.0的
<?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:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" 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-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.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-3.1.xsd" default-lazy-init="false" > <!-- 提供方應用名稱信息,這個至關於起一個名字,咱們dubbo管理頁面比較清晰是哪一個應用暴露出來的 --> <dubbo:application name="dubbo-provider-dsp"></dubbo:application> <dubbo:annotation package="pring.boot.*" /> <!-- 使用zookeeper註冊中心暴露服務地址 --> <dubbo:registry address="zookeeper://192.168.2.164:2181" check="false" subscribe="false" register=""></dubbo:registry> <!-- 要暴露的服務接口 --> <dubbo:service interface="pring.boot.service.dubbo.DubboService" ref="dubboService" /> </beans>
上面是生產者dubbo xml文件,文件放在resources中
@SpringBootApplication @ImportResource("classpath:dubbo-consum.xml") public class Application { public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } }
這是引用dubbo文件,生產者和消費者都是同樣引入。
<?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" 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"> <!-- 消費方應用名,用於計算依賴關係,不是匹配條件,不要與提供方同樣 --> <dubbo:application name="dubbo-custom-dsp"/> <dubbo:registry address="zookeeper://192.168.2.164:2181" /> <!-- 生成遠程服務代理,能夠和本地bean同樣使用demoService --> <dubbo:reference id="dubboService" interface="pring.boot.service.dubbo.DubboService" /> </beans> 這是消費者dubbo xml文件 文件位置跟生產者同樣