springboot集成dubbo

springboot 基础环境搭建
idea提供新建springboot项目(名字自己随便起,我这里叫springboot_dubbo)


新建springboot项目

新建子模块(如下图与选择Module后与创建springboot一样)


新建子模块

创建完成后 删除无用的相关的数据后如下图


image.png

1. 创建provider

基础工程建好以后开始创建基本配置:
在application.proproperties 加入dubbo相关信息如图:(加入这些配置直观感受就是代码中可以加入dubbo相关的注解)


application.proproperties

配置代码:

#项目名
spring.application.name=dubbo-spring-boot-starter
#是否开启dubbo
spring.dubbo.server=true
#注册中心地址,我这里用的zookeeper 也可用其他的
spring.dubbo.registry=zookeeper://localhost:2181

开始创建个接口(这里演示provider与consumer各创建一个相同的,可以将所有接口抽离成一个jar,方便第三方调用是引用):

ServiceAPI

package com.mooc.jiangzh.dubbo.springboot;

public interface ServiceAPI {

    String sendMessage(String message);

}

QuickstartServiceImpl

package com.mooc.jiangzh.dubbo.springboot.privoder.quickstart;

import com.alibaba.dubbo.config.annotation.Service;
import com.mooc.jiangzh.dubbo.springboot.ServiceAPI;
import org.springframework.stereotype.Component;

@Component
@Service(interfaceClass = ServiceAPI.class)
public class QuickstartServiceImpl implements ServiceAPI {

    @Override
    public String sendMessage(String message) {
        return "quickstart-provider-message="+message;
    }
}

其中
@component (把普通pojo实例化到spring容器中,相当于配置文件中的
另外扩展
1、@controller 控制器(注入服务)
2、@service 服务(注入dao)
3、@repository dao(实现dao访问)
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的
  @Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。

注意:刚才代码中引入的service并不是spring的,而是dubbo的service注解,作用是暴露service接口,注册到注册中心,便于consumer找到服务。

配置启动类:
PrivoderApplication

package com.mooc.jiangzh.dubbo.springboot.privoder;

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDubboConfiguration
public class PrivoderApplication {

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

启动类中加入 @EnableDubboConfiguration注解表示启动的是后加载配置dubbo相关的组件。

1. 创建consumer

引入配置,创建接口与provider都一样,


image.png

介绍一下consumer的实现:

package com.mooc.jiangzh.dubbo.springboot.consumer.quickstart;

import com.alibaba.dubbo.config.annotation.Reference;
import com.mooc.jiangzh.dubbo.springboot.ServiceAPI;
import org.springframework.stereotype.Component;

@Component
public class QuickstartConsumer {

    @Reference(interfaceClass = ServiceAPI.class)
    ServiceAPI serviceAPI;

    public void sendMessage(String message){
        System.out.println(serviceAPI.sendMessage(message));
    }

}

其中 @Reference(interfaceClass = ServiceAPI.class) 是引入服务,表示dubbo 从注册中心去发现名叫ServiceAPI的服务。

在写个controller 就可以通过@Autowired引用这个服务了。

总结:
1.配置文件引入dubbo,注册中心相关的配置
2.共用的一套接口
3.启动类加入@EnableDubboConfiguration注解
4.provider 加入 @Service(interfaceClass = ServiceAPI.class) 注册服务

  1. consumer 加入 @Reference(interfaceClass = ServiceAPI.class) 去发现服务

你可能感兴趣的:(springboot集成dubbo)