SpringBoot 整合Dubbo

SpringBoot 整合Dubbo文章目录一 工程目录结构二 创建工程项目 1 创建接口工程 cw dubbo api 1 pom xml 2 创建接口类 LoginService 2 创建服务提供者工程 cw dubbo provider 1 pom xml 2 application properties 3 主类 CwDubboProvi 4 LoginService 创建服务调用者工程 cw dubbo consumer 1 pom xml 2 application properties

注:此项目使用了Zookeeper组件。

一、工程目录结构

在这里插入图片描述

二、创建工程项目

1、创建接口工程(cw-dubbo-api)

此工程就是一个maven工程。

在这里插入图片描述

(1)pom.xml

 
       <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>SpringBootDubboDemo 
        artifactId> <groupId>cw-dubbo-demo 
         groupId> <version>1.0.0 
          version>  
           parent> <modelVersion>4.0.0 
            modelVersion> <artifactId>cw-dubbo-api 
             artifactId> <properties> <maven.compiler.source>8 
              maven.compiler.source> <maven.compiler.target>8 
               maven.compiler.target>  
                properties>  
                 project> 

(2)创建接口类(LoginService)

package com.cw.dubbo.api; public interface LoginService { 
        String login(String name, String pwd); } 

2、创建服务提供者工程(cw-dubbo-provider)

(1)pom.xml

 
          <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> <parent> <groupId>org.springframework.boot 
            groupId> <artifactId>spring-boot-starter-parent 
             artifactId> <version>2.3.4.RELEASE 
              version> <relativePath/>  
               
               parent> <groupId>cw-dubbo-demo 
                groupId> <artifactId>cw-dubbo-provider 
                 artifactId> <version>1.0.0 
                  version> <name>cw-dubbo-provider 
                   name> <description>Demo project for Spring Boot 
                    description> <properties> <java.version>1.8 
                     java.version>  
                      properties> <dependencies> <dependency> <groupId>cw-dubbo-demo 
                       groupId> <artifactId>cw-dubbo-api 
                        artifactId> <version>1.0.0 
                         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-test 
                               artifactId> <scope>test 
                                scope>  
                                 dependency>  
                                 <dependency> <groupId>com.alibaba.boot 
                                  groupId> <artifactId>dubbo-spring-boot-starter 
                                   artifactId> <version>0.2.0 
                                    version>  
                                     dependency>  
                                      dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot 
                                       groupId> <artifactId>spring-boot-maven-plugin 
                                        artifactId>  
                                         plugin>  
                                          plugins>  
                                           build>  
                                            project> 

(2)application.properties

server.port=8078 # dubbo项目名 dubbo.application.name=cw-dubbo-providor # 注册中心地址 dubbo.registry.address=127.0.0.1:2181 # 指定注册中心为zookeeper dubbo.registry.protocol=zookeeper # 指定通信协议 dubbo.protocol.name=dubbo dubbo.protocol.port=20880 #  dubbo.consumer.timeout= dubbo.provider.timeout= # 连接监控中心,去注册中心直接发现,不配地址 dubbo.monitor.protocol=registry 

(3)主类(CwDubboProviderApplication)

package com.cw.dubbo.provider; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableDubbo @SpringBootApplication public class CwDubboProviderApplication { 
            public static void main(String[] args) { 
            SpringApplication.run(CwDubboProviderApplication.class, args); } } 

(4)LoginServiceImpl

package com.cw.dubbo.provider; import com.alibaba.dubbo.config.annotation.Service; import com.cw.dubbo.api.LoginService; @Service public class LoginServiceImpl implements LoginService { 
             @Override public String login(String name, String pwd) { 
             return "name = " + name + ", pwd = " + pwd; } } 

3、创建服务调用者工程(cw-dubbo-consumer)

该工程是一个SpringBoot工程。

在这里插入图片描述

(1)pom.xml

 
               <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> <parent> <groupId>org.springframework.boot 
                 groupId> <artifactId>spring-boot-starter-parent 
                  artifactId> <version>2.3.4.RELEASE 
                   version> <relativePath/>  
                    
                    parent> <groupId>cw-dubbo-demo 
                     groupId> <artifactId>cw-dubbo-consumer 
                      artifactId> <version>1.0.0 
                       version> <name>cw-dubbo-consumer 
                        name> <description>Demo project for Spring Boot 
                         description> <properties> <java.version>1.8 
                          java.version>  
                           properties> <dependencies> <dependency> <groupId>cw-dubbo-demo 
                            groupId> <artifactId>cw-dubbo-api 
                             artifactId> <version>1.0.0 
                              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-test 
                                    artifactId> <scope>test 
                                     scope>  
                                      dependency>  
                                      <dependency> <groupId>com.alibaba.boot 
                                       groupId> <artifactId>dubbo-spring-boot-starter 
                                        artifactId> <version>0.2.0 
                                         version>  
                                          dependency>  
                                           dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot 
                                            groupId> <artifactId>spring-boot-maven-plugin 
                                             artifactId>  
                                              plugin>  
                                               plugins>  
                                                build>  
                                                 project> 

(2)application.properties

server.port=8079 #应用名称 dubbo.application.name=cw-dubbo-consumer #注册中心地址(可以直接全地址) dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.consumer.timeout= dubbo.provider.timeout= #在注册中心找监控 dubbo.monitor.protocol=registry 

(3)主类(CwDubboConsumerApplication)

package com.cw.dubbo.consumer; import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableDubbo @SpringBootApplication public class CwDubboConsumerApplication { 
                 public static void main(String[] args) { 
                 SpringApplication.run(CwDubboConsumerApplication.class, args); } } 

(4)LoginController

package com.cw.dubbo.consumer; import com.alibaba.dubbo.config.annotation.Reference; import com.cw.dubbo.api.LoginService; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class LoginController { 
                  @Reference private LoginService loginService; @RequestMapping(value = "/login", method = RequestMethod.GET) public String login(@RequestParam(name = "name") String name, @RequestParam(name = "pwd") String pwd){ 
                  long start = System.currentTimeMillis(); String str = loginService.login(name, pwd); long end = System.currentTimeMillis(); return "duration = " + (end - start) + "ms, " + str; } } 

三、测试

先启动 cw-dubbo-provider 工程,然后在启动 cw-dubbo-consumer 工程。

启动成功后,在浏览器访问:http://localhost:8079/login?name=admin&pwd=123456






























版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217819.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午8:41
下一篇 2026年3月18日 上午8:41


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号