springboot+dubbo+nacos整合

1、创建maven项目

dubbo-nacos-demo

2、父工程引入依赖



    
        dubbo-nacos-demo
        com.zmq
        1.0-SNAPSHOT
    
    4.0.0

    com.zmq
    dubbo-provide
    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter
            
                
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        
        
            org.springframework.boot
            spring-boot-starter-log4j2
        
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
        
            org.apache.dubbo
            dubbo-spring-boot-starter
        
        
            org.apache.dubbo
            dubbo
        

        
        
            org.apache.dubbo
            dubbo-registry-nacos
            2.7.3
        
        
            com.alibaba.nacos
            nacos-client
        
    
    
        
            apache.snapshots.https
            Apache Development Snapshot Repository
            https://repository.apache.org/content/repositories/snapshots
            
                false
            
            
                true
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

3、创建子工程dubbo-provide

引入依赖



    
        dubbo-nacos-demo
        com.zmq
        1.0-SNAPSHOT
    
    4.0.0

    com.zmq
    dubbo-provide
    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter
            
                
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        
        
            org.springframework.boot
            spring-boot-starter-log4j2
        
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
        
            org.apache.dubbo
            dubbo-spring-boot-starter
        
        
            org.apache.dubbo
            dubbo
        

        
        
            org.apache.dubbo
            dubbo-registry-nacos
            2.7.3
        
        
            com.alibaba.nacos
            nacos-client
        
    
    
        
            apache.snapshots.https
            Apache Development Snapshot Repository
            https://repository.apache.org/content/repositories/snapshots
            
                false
            
            
                true
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

新建配置文件application.yml

nacos:
  config:
    server-addr: localhost:8848
spring:
  application:
    name: dubbo-provide
dubbo:
  application:
    name: ${spring.application.name}
  registry:
    address: nacos://${nacos.config.server-addr}
  scan:
    base-packages: com.zmq.service
  protocol:
    name: dubbo
    port: 20881

创建启动类

package com.zmq;

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

创建service接口

package com.zmq.service;

public interface ProvideService {
    String sayHello(String word);
}

创建service接口实现类,注意这里的service注解是dubbo的注解

package com.zmq.service.impl;

import com.zmq.service.ProvideService;
import org.apache.dubbo.config.annotation.Service;

@Service
public class ProvideImpl implements ProvideService {
    public String sayHello(String word) {
        return word;
    }
}

3、创建dubbo-consumer模块

引入依赖



    
        dubbo-nacos-demo
        com.zmq
        1.0-SNAPSHOT
    
    4.0.0

    com.zmq
    dubbo-consumer
    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        
        
            org.springframework.boot
            spring-boot-starter-log4j2
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.apache.dubbo
            dubbo-spring-boot-starter
        
        
            org.apache.dubbo
            dubbo
        

        
        
            org.apache.dubbo
            dubbo-registry-nacos
            2.7.3
        
        
        
            com.alibaba.nacos
            nacos-spring-context
            0.3.1
        
        
            com.alibaba.nacos
            nacos-client
        
        
            com.zmq
            dubbo-provide
            1.0-SNAPSHOT
            compile
        
    
    
        
            apache.snapshots.https
            Apache Development Snapshot Repository
            https://repository.apache.org/content/repositories/snapshots
            
                false
            
            
                true
            
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


创建application.yml配置文件

server:
  address:
  port: 8081
spring:
  application:
    name: dubbo-consumer
nacos:
  config:
    server-addr: localhost:8848
dubbo:
  registry:
    address: nacos://${nacos.config.server-addr}
  application:
    name: ${spring.application.name}

创建启动类

package com.zmq;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class dubboConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(dubboConsumerApplication.class);
    }
}

创建controller调用服务

package com.zmq.controller;

import com.zmq.service.ProvideService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConsumerController {
    @Reference
    ProvideService provideService;

    @RequestMapping("sayHello")
    public String sayHello(){
        return provideService.sayHello("我爱你");
    }
}

4、浏览器查看结果

在浏览器输入localhost:8081/sayHello,即可看到输出的话
在这里插入图片描述

5、启动nacos后可在服务列表看到注册的服务

在这里插入图片描述
项目源码:https://github.com/xiaohuoban00/springboot-dubbo-nacos

你可能感兴趣的:(java,dubbo,spring,boot,java,开发语言,数据库)