ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

第一个Dubbo程序

2022-02-27 18:33:22  阅读:127  来源: 互联网

标签:Dubbo 第一个 dubbo boot 程序 springframework org import public


1.新建api接口

/**
 * API接口,provider和consumer都要去引入这个接口
 */
public interface DemoDubboService {
    public String demo(String param);
}

2.新建provider

  • pom依赖

    <parent>
    	<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.7.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.2.0</version>
        </dependency>
    </dependencies>   
    
  • application.yml

    dubbo:
      application:
        name: dubbo-provider
      registry:
        address: zookeeper://127.0.0.1:2181
    
  • 实现接口

    import com.msb.dubbo.service.DemoDubboService;
    import org.apache.dubbo.config.annotation.Service;
    
    /**
     * 此类为接口的实现类,
     * Service注解为apache的@Service.此注解是区分项目是Provider还是Consumer最重要依据
     */
    @Service
    public class DemoDubboServiceImpl implements DemoDubboService {
        public String demo(String param) {
            System.out.println("执行demo");
            return param + "123";
        }
    }
    
  • 启动类

    import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * 必须要有@EnableDubbo注解,否则Dubbo不生效。
     */
    @SpringBootApplication
    @EnableDubbo
    public class ProviderApplication {
        public static void main(String[] args) {
            SpringApplication.run(ProviderApplication.class, args);
        }
    }
    

3.新建consumer

  • pom依赖

    <parent>
    	<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.7.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.2.0</version>
        </dependency>
    </dependencies>   
    
  • application.yml

    dubbo:
      application:
        name: dubbo-cunsumer
      registry:
        address: zookeeper://127.0.0.1:2181
    
  • Service类

    import com.msb.dubbo.service.DemoDubboService;
    import org.apache.dubbo.config.annotation.Reference;
    import org.springframework.stereotype.Service;
    
    /**
     * 调用服务使用@Reference注解org.apache.dubbo.config.annotation.Reference;
     */
    @Service
    public class DemoService{
    
        @Reference
        private DemoDubboService demoDubboService;
    
        public String demo() {
            return demoDubboService.demo("张三丰");
        }
    }
    
  • Controller类

    import com.msb.service.DemoService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class DemoController {
    
        @Autowired
        private DemoService demoService;
    
        @RequestMapping("/demo")
        @ResponseBody
        public String demo() {
            return demoService.demo();
        }
    }
    
  • 启动类

    import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @EnableDubbo
    public class ConsumerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConsumerApplication.class, args);
        }
    }
    

标签:Dubbo,第一个,dubbo,boot,程序,springframework,org,import,public
来源: https://www.cnblogs.com/ZT-666/p/15942987.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有