SpringBoot整合Dubbo (Maven聚合项目搭建)

1、搭建父工程

在idea中通过maven构建项目,搭建好之后删除src文件目录,然后修改pom文件。

  <packaging>pom</packaging>
   <properties>
        <java.version>1.8</java.version>
    </properties>
引入springboot:
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
以及打包插件:
   <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2、添加子模块api、provider、consumer

该模块用户提供接口。
在这里插入图片描述
在这里插入图片描述
api模块中编写接口:

public interface IUser {
    String say();
}

其中provider和consumer两个子模块都需要依赖api模块。在他们两个的pom中添加依赖。

       <dependency>
            <groupId>com.hyperchain</groupId>
            <artifactId>api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    以及
     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--dubbo-->
        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!--zkclient-->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

3、provider、consumer模块的resource下面添加application.properties

provider:

server.port=8083
spring.application.name=provider
spring.dubbo.registry=zookeeper://192.168.225.143:2181
spring.dubbo.consumer.check=false

consumer:

server.port=8888
spring.application.name=consumer
spring.dubbo.registry=zookeeper://192.168.225.143:2181
spring.dubbo.consumer.check=false

4、provider模块中编写接口的实现

@Component
@Service(interfaceClass = IUser.class, timeout = 1200000)
public class UserImpl implements IUser {
    @Override
    public String say() {
        return "Hello Dubbo!";
    }
}

5、consumer模块中消费该接口

@RestController
@RequestMapping("/test")
public class HelloController {
    @Reference
    private IUser user;

    @RequestMapping("/hello")
    public String test() {
        return user.say();
    }

}

6、provider、consumer编写启动类

@EnableDubboConfiguration
@SpringBootApplication
public class ApplicationStart {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationStart.class, args);
    }
}

7、效果展示

在这里插入图片描述
在这里插入图片描述

8、github项目地址

github项目地址:

发布了136 篇原创文章 · 获赞 30 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_33029793/article/details/103177735