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文件 文件位置跟生产者同样