SpringBoot整合dubbo:基本环境搭建(不含数据库)

dubbo的中文官方文档:

阅读dubbo中文官方文档

项目中使用的注册中心是Windows下安装的单体zookeeper,其中安装过程及配置不再赘述

1、新建一个父项目,导入以下依赖


        org.springframework.boot
        spring-boot-starter-parent
        2.2.2.RELEASE
    

    
        
            
            
                org.apache.curator
                curator-recipes
                4.2.0
            
            
                org.apache.curator
                curator-framework
                4.2.0
            

            
                org.springframework.boot
                spring-boot-starter
                2.2.2.RELEASE
            
            
                org.springframework.boot
                spring-boot-starter-web
                2.2.2.RELEASE
            
            
                org.apache.dubbo
                dubbo-spring-boot-starter
                2.7.3
            

        
    

2、搭建API项目

新建dubbo-api模块,创建接口:com.xxx.dubbo.service.ApiService。此处的pom.xml文件不需要添加任何依赖。


public interface ApiService {
    String apiMethod();
}

3、搭建provider项目

新建模块dubbo-provider
在pom.xml中添加以下依赖:


        
            dubbo_api
            com.xxx
            1.0-SNAPSHOT
        
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.apache.dubbo
            dubbo-spring-boot-starter
        
        
            org.apache.curator
            curator-recipes
            
                
                    org.slf4j
                    slf4j-api
                
            
        
        
            org.apache.curator
            curator-framework
        
    

注意:一定要依赖进去API项目
新建application.yml文件:
SpringBoot整合dubbo:基本环境搭建(不含数据库)_第1张图片
新建API接口的实现类:com.xxx.dubbo.service.impl.ApiServiceImpl,注意:此处的@service导包要正确:
import org.apache.dubbo.config.annotation.Service;

@Service
public class ApiServiceImpl implements ApiService {
    @Override
    public String apiMethod() {
        System.out.println("provider......");
        return "provider";
    }
}

新建启动类:com.xxx.ProviderApplication

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

到此,dubbo中的provider搭建结束

4、搭建consumer项目

新建模块dubbo-consumer
在pom.xml中添加一下依赖:
注意:这里也一定要依赖进去API项目


        
            dubbo_api
            com.xxx
            1.0-SNAPSHOT
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.apache.dubbo
            dubbo-spring-boot-starter
        
        
            org.apache.curator
            curator-recipes
        
        
            org.apache.curator
            curator-framework
        

新建application.yml文件
SpringBoot整合dubbo:基本环境搭建(不含数据库)_第2张图片
新建业务接口:com.xxx.service.ConsumerService

public interface ConsumerService {
    String consumerMethod();
}

新建接口实现类:com.xxx.service.impl.ConsumerServiceImpl

调用服务使用@Reference注解,不要导错包了,有两个,使用org.apache.dubbo.config.annotation.Reference

此处的@Service注解使用的org.springframework.stereotype.Service

@Service
public class ConsumerServiceImpl implements ConsumerService {

    @Reference
    private ApiService apiService;

    @Override
    public String consumerMethod() {
        System.out.println("consumer...");
        return apiService.apiMethod();
    }
}

新建controller:com.xxx.controller.ConsumerController

@Controller
public class ConsumerController {

    @Autowired
    private ConsumerService consumerServicec;
    
    @GetMapping("/show")
    @ResponseBody
    public String show(){
        return consumerServicec.consumerMethod();
    }
    
}

新建启动类:com.xxx.ConsumerApplication

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

到此,provider和consumer全部搭建完毕,启动项目在浏览器中访问即可,一定要先启动provider项目再启动consumer项目。当然,做这两件事之前,你一定要保证你的zookeeper是起着的

启动之后,你就会发现,不论是provider项目还是consumer项目控制台都会出现一个警告信息:
控制台警告信息
这个警告并不影响使用,因为dubbo默认使用的log4j日志,但是你并没有加入log4j的配置文件log4j.properties,没有强迫症的话不用管它,如果非要处理的话,只需要在项目的resource目录下添加添加相应配置文件即可,至于这个配置文件,下篇博客考虑一下…
浏览器访问:
SpringBoot整合dubbo:基本环境搭建(不含数据库)_第3张图片
控制台输出(provider):
SpringBoot整合dubbo:基本环境搭建(不含数据库)_第4张图片
控制台输出(consumer):
SpringBoot整合dubbo:基本环境搭建(不含数据库)_第5张图片

你可能感兴趣的:(SpringBoot)