当前位置: 移动技术网 > IT编程>开发语言>Java > springboot整合dubbo的简单案例

springboot整合dubbo的简单案例

2019年06月06日  | 移动技术网IT编程  | 我要评论

金娜允,重生于康熙末年5200,igotya怎么设置

使用框架:

  jdk 1.8

  springboot-2.1.3 

  dubbo-2.6

  spring-data-jpa-2.1.5

一、开发dubbo服务接口:

按照dubbo官方开发建议,创建一个接口项目,该项目只定义接口和model类;

1、创建springboot工程 spring-boot-demo-dubbo-interface

坐标:

<groupid>com.example</groupid>
<artifactid>spring-boot-demo-dubbo-interface</artifactid>
<version>0.0.1-snapshot</version>

添加spring-data-jpa 依赖:

<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-data-jpa</artifactid>
</dependency>

2、创建model

package com.example.demo.model;

@entity public class user implements serializable{ private static final long serialversionuid = 1l; @id @generatedvalue private long id; private string username; private string password; private int age; public long getid() { return id; } //省略set get 方法

3、创建接口:

package com.example.demo.service;

import com.example.demo.model.user;

public interface userservice {
    
    public void save(user user);
    
    public string sayhello(string word);
}

4、使用命令  clean install   打包安装到maven仓库。

 

 

阿里巴巴提供的dubbo集成springboot开源项目;

参考文档:

https://github.com/apache/dubbo-spring-boot-project/blob/0.2.x/readme_cn.md

本工程采用该项目的jar包进行继承:

<dependency>
<groupid>com.alibaba.boot</groupid>
<artifactid>dubbo-spring-boot-starter</artifactid>
<version>0.2.0</version>
</dependency>

 

二、开发dubbo服务提供者:

1、创建一个springboot项目spring-boot-demo-dubbo-provider并配置好相关的依赖;

pom.xml

<dependencies>
        <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>
        
        
        <!-- 加入springboot与dubbo集成的起步依赖 -->
        <dependency>
            <groupid>com.alibaba.boot</groupid>
            <artifactid>dubbo-spring-boot-starter</artifactid>
            <version>0.2.0</version>
        </dependency>

        <!-- 由于使用了zookeeper作为注册中心,则需要加入zookeeper的客户端jar包: -->
        <dependency>
            <groupid>com.101tec</groupid>
            <artifactid>zkclient</artifactid>
            <version>0.10</version>
        </dependency>
        
        <!-- spring-data-jpa -->
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-data-jpa</artifactid>
        </dependency>

        <dependency>
            <groupid>mysql</groupid>
            <artifactid>mysql-connector-java</artifactid>
            <scope>runtime</scope>
        </dependency>
        
        <!-- 添加接口服务 -->
        <dependency>
            <groupid>com.example</groupid>
            <artifactid>spring-boot-demo-dubbo-interface</artifactid>
            <version>0.0.1-snapshot</version>
        </dependency>
    </dependencies>

2、在springboot的核心配置文件application.properties中配置dubbo的信息:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?servertimezone=utc&useunicode=true&characterencoding=utf-8&usessl=true
spring.datasource.username=root
spring.datasource.password=root

spring.jpa.properties.hibernate.hbm2ddl.auto=create
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.mysql5innodbdialect
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.show-sql=true

# 访问端口
server.port=8080
# dubbo配置
dubbo.application.name=springboot-dubbo-provider
dubbo.registry.address=zookeeper://192.168.146.128:2181

3、开发编写dubbo的接口实现类:

package com.example.demo.service;

import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.component;

import com.alibaba.dubbo.config.annotation.service;
import com.example.demo.model.user;
import com.example.demo.repository.userrepository;

@component //注册为spring bean
@service // 这注解是dubbo提供的 
public class userserviceimpl implements userservice {
    
    @autowired
    private userrepository userrepository;

    @override
    public void save(user user) {
        userrepository.save(user);
    }

    @override
    public string sayhello(string word) {
        return word;
    }
}

4、入口main程序启动dubbo服务提供者:添加注解 @enabledubbo

package com.example.demo;

import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;

import com.alibaba.dubbo.config.spring.context.annotation.enabledubbo;

@springbootapplication
@enabledubbo
public class springbootdemodubboproviderapplication {

    public static void main(string[] args) {
        springapplication.run(springbootdemodubboproviderapplication.class, args);
    }

}

 启动main ,服务发布到zookeeper 注册中心。

 

三、开发dubbo服务消费者:

1、创建一个springboot项目spring-boot-demo-dubbo-consumer并配置好相关的依赖;

2、加入springboot与dubbo集成的起步依赖:(pom.xml 配置同上)

 注意: 服务提供者 和 消费者都要配置 服务接口依赖 

3、在springboot的核心配置文件application.properties中配置dubbo的信息:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?servertimezone=utc&useunicode=true&characterencoding=utf-8&usessl=true
spring.datasource.username=root
spring.datasource.password=root

# web\u670d\u52a1\u7aef\u53e3
server.port=8081
# dubbo\u914d\u7f6e
dubbo.application.name=springboot-dubbo-consumer
dubbo.registry.address=zookeeper://192.168.146.128:2181 

 

4、编写一个controller类,调用远程的dubbo服务:

package com.example.demo.controller;

import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.restcontroller;

import com.alibaba.dubbo.config.annotation.reference;
import com.example.demo.model.user;
import com.example.demo.service.userservice;

@restcontroller
public class usercontroller {
    
    @reference //该注解是dubbo提供的
    private userservice userservice;
    
    @requestmapping("/say")
    public string sayhello(string name) {
        return userservice.sayhello(name);
    }
    
    @requestmapping("/save")
    public void save() {
        user u = new user();
        u.setage(20);
        u.setpassword("123");
        u.setusername("zheng");
        userservice.save(u);
    }
}

 

 

5、启动类添加 开启dubbo 注解 @enabledubbo

package com.example.demo;

import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import com.alibaba.dubbo.config.spring.context.annotation.enabledubbo;

@springbootapplication
@enabledubbo
public class springbootdemodubboconsumerapplication {
    public static void main(string[] args) {
        springapplication.run(springbootdemodubboconsumerapplication.class, args);
    }
}

 

  6、启动main方法。

  7、调用远程接口:

http://localhost:8081/say?name=hello

一个简单的springboot基于dubbo的服务接口开发完成。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网