天天看点

springboot整合dubbo(使用dubbo的springboot starter)

1. 项目结构

springboot整合dubbo(使用dubbo的springboot starter)

2. maven依赖(服务端)

<!-- 第一种starter -->
<dependency>
    <groupId>io.dubbo.springboot</groupId>
    <artifactId>spring-boot-starter-dubbo</artifactId>
</dependency>
<!-- 第二种dubbo的starter -->
<dependency>
    <groupId>com.alibaba.spring.boot</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
           

    网上查了各种整合案例,有两种dubbo的springboot starter,我也不知道这两者有什么区别,但是前者网上案例比较多,后者比较少。后者更新频率也更高。所以我选择了后者。

服务端pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lwb</groupId>
    <artifactId>elasticsearch-service</artifactId>

    <parent>
        <groupId>com.lwb</groupId>
        <artifactId>dubbo-elasticsearch</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>com.lwb</groupId>
            <artifactId>ealsticsearch-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.12</version>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-web</artifactId>-->
        <!--</dependency>-->
    </dependencies>
</project>
           

3. application.properties

之前属性名称前面加了 spring.dubbo.*,启动报错,识别不了。

springboot整合dubbo(使用dubbo的springboot starter)

4. 对外暴露的服务

springboot整合dubbo(使用dubbo的springboot starter)

    api包是需要消费者端依赖的,所以接口放在了api包里面,实现需要对消费者隐藏,所以放在了服务端。@Serveice注解是dubbo的注解,代替了之前配置在xml里面的<dubbo:service/>

5. 启动类

springboot整合dubbo(使用dubbo的springboot starter)

6. 结果

springboot整合dubbo(使用dubbo的springboot starter)

继续阅读