dubbo笔记(2)—— SpringBoot整合Dubbo

一、服务提供者部分

1、添加Dubbo依赖(注册中心使用的是zookeeper)

 <dependency>
       <groupId>com.alibaba.spring.boot</groupId>
       <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>2.0.0</version>
  </dependency>
  <dependency>
        <groupId>com.101tec</groupId>
        <artifactId>zkclient</artifactId>
        <version>0.10</version>
   </dependency>

2、配置dubbo

在application.yml(或application.properties)中配置dubbo

spring:
application:
name: dubbo-provider
dubbo:
server: true
registry: zookeeper://192.168.1.100:2181 #注册中心是zookeeper
protocol:
name: dubbo
port: 20880 #用dubbo协议在20880端口暴露服务

3、编写SpringBoot启动类

@SpringBootApplication
@EnableDubboConfiguration  // 表示开启dubbo功能
public class UserApplication {

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

4、编写服务提供者service接口及其实现类

public interface UserAPI {
    public int login(String username,String password);
}
@Component  // 将具体的实现类加入到Spring容器中
@Service(interfaceClass = UserAPI.class)  // 将该接口暴露到dubbo中
public class UserServiceImpl implements UserAPI {
    @Override
    public int login(String username, String password) {
        // ...
    }
}

 

一、服务消费者部分

1、添加Dubbo依赖,(同服务提供者部分)

2、在application.yml(或application.properties)中配置dubbo

spring:
  application:
    name: dubbo-consumer
  dubbo:
    server: true
    registry: zookeeper://192.168.1.100:2181

3、编写SpringBoot启动类(同服务提供者部分)

4、编写service,复制服务提供者service接口即可。(注意:包路径必须保持一致)

5、消费者调用服务接口

RestController
public class LoginController {

    @Reference(interfaceClass = UserAPI.class)
    private UserAPI userAPI;

    @RequestMapping(value = "login")
    public ResponseVO Login(User user) {        int userId = this.userAPI.login(user.getUserName(),user.getPassword());
        // ..
    }
}

 

posted @ 2018-12-11 20:55  wrshun  阅读(468)  评论(0编辑  收藏  举报