step 1 : 简单搭建Spring Boot2.7.12 + Dubbo3.1.11 + nacos2.1.1工程框架

概要

虽然将这一步定义为了 step 1,但实际上还有一些前置工作未作说明(基本环境-电脑上有了懒得折腾),主要是安装java、maven、git,以及注册github,新建仓库,安装nacos,包括idea的一些基本设置。
补充:github地址:https://github.com/Pudgezhen/keys_to_iot

正题

先简单看下项目结构哈

项目结构

  • 简单介绍:keys_to_iot 作为整个项目,无需介绍
    iot 作为父工程,主要是 对整个项目依赖版本的一个管控
    api 作为父工程下的一个模块,主要是 提供 公用的接口和pojo的作用
    device 作为父工程下的一个模块,在此demo中作为服务消费者
    user 作为父工程下的一个模块,在此demo中作为服务生产者

pom文件参考:

iot 父工程

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <properties>
       <dubbo.version>3.1.11</dubbo.version>
   </properties>
   
   <packaging>pom</packaging>
   <modules>
       <module>api</module>
       <module>user</module>
       <module>device</module>
   </modules>
   <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.7.12</version>
       <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.keys</groupId>
   <artifactId>iot</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>iot</name>
   <description>Demo project for Spring Boot</description>

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

       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <scope>test</scope>
       </dependency>
   </dependencies>

   <dependencyManagement>
       <dependencies>
           <dependency>
               <groupId>org.apache.dubbo</groupId>
               <artifactId>dubbo</artifactId>
               <version>${dubbo.version}</version>
           </dependency>
           
           <!-- dubbo-starter 版本控制-->
           <dependency>
               <groupId>org.apache.dubbo</groupId>
               <artifactId>dubbo-spring-boot-starter</artifactId>
               <version>${dubbo.version}</version>
           </dependency>

           <!--dubbo-nacos 注册中心-->
           <dependency>
               <groupId>org.apache.dubbo</groupId>
               <artifactId>dubbo-registry-nacos</artifactId>
               <version>${dubbo.version}</version>
           </dependency>
       </dependencies>


   </dependencyManagement>

   <build>
       <plugins>
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
           </plugin>
       </plugins>
   </build>

</project>

api

<?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">
    <parent>
        <artifactId>iot</artifactId>
        <groupId>com.keys</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <artifactId>api</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
        </dependency>

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

    </dependencies>



</project>

device

<?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">
    <parent>
        <artifactId>iot</artifactId>
        <groupId>com.keys</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>device</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.keys</groupId>
            <artifactId>api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

user

<?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">
    <parent>
        <artifactId>iot</artifactId>
        <groupId>com.keys</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>user</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.keys</groupId>
            <artifactId>api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

yml 配置文件参考

device

server:
  port: 9001  #项目端口号
dubbo:
  application:
    name: device  #注册中心name
  protocol:
    name: dubbo  #协议
    port: -1    #系统自动选择的端口

  registry:      # 注册中心
    address: nacos://127.0.0.1:8848    # 注册中心地址
    username: nacos
    password: nacos

user

server:
  port: 9002

dubbo:
  application:
    name: user   #注册中心name
  protocol:
    name: dubbo  #协议
    port: -1    #系统自动选择的端口

  registry:      # 注册中心
    address: nacos://127.0.0.1:8848    # 注册中心地址
    username: nacos
    password: nacos

程序代码

  • 这个就不截图了,就是一个简单的测试案例,也没多少代码,大致说一下思路

api 工程
提供一个interface,由服务提供者实现具体逻辑,服务消费者来调用
user 服务提供者

  1. SpringBoot启动类加 @EnableDubbo注解
  2. 创建一个class实现 api工程提供的接口,并在类上添加 @DubboService 注解

device 服务消费者
直接使用 @DubboReference 取代 @Autowired 将bean注入即可使用

然后,直接启动两个工程就可以了(可以在device写一个controller测试哈)。
还有就是 dubbo默认是有启动检查的,所以需要先启动服务提供者,再启动消费者。

有时间在单独整理一份dubbo的学习吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值