`

springcloud

 
阅读更多

springboot集成dubbo

 

## 1.创建公共工程 dubbo-common-api

 

定义接口

 

```java

package com.anyec.demo.service;

import java.util.List;

 

import com.anyec.demo.model.User;

 

public interface UserService {

 

User getUserById(String id);

List<User> listUser(User u);

}

```

 

定义数据对象

 

```package com.anyec.demo.model;

import java.io.Serializable;

import java.util.Date;

 

import com.alibaba.fastjson.JSON;

 

public class User implements Serializable {

private String id;

private String name;

private Date createDate;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Date getCreateDate() {

return createDate;

}

public void setCreateDate(Date createDate) {

this.createDate = createDate;

}

@Override

public String toString() {

return JSON.toJSONString(this);

}

 

}

```

 

```JAVA

 

```

 

 

 

## 2 创建 provider工程

 

2.1工程依赖公共工程对应的接口和数据对象

 

2.2使用spring initlazer创建功能加入pom依赖

 

```

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

 

<groupId>com.anyec</groupId>

<artifactId>dobbo-demo-provider</artifactId>

<version>1.0.0</version>

<packaging>jar</packaging>

 

<name>dobbo-demo-provider</name>

<description>Demo project for Spring Boot</description>

 

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.5.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

 

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

 

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<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>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

 

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

 

 

</project>

 

```

 

 

 

2.3设置配置文件

 

```java

spring.application.name=demo-dubbo-provider#工程名称

spring.dubbo.server=true#开启dubbo服务

spring.dubbo.registry=zookeeper://localhost:2181 #配置注册方式和地址

```

 

2.4启动类加上注解

 

```java

package com.anyec.demo.provider;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

 

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;

 

@SpringBootApplication

@EnableDubboConfiguration

public class DobboDemoProviderApplication {

 

public static void main(String[] args) {

SpringApplication.run(DobboDemoProviderApplication.class, args);

}

}

 

```

 

2.5实现创建服务实例实现服务接口

 

```

package com.anyec.demo.provider.service;

 

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.UUID;

 

import org.springframework.stereotype.Component;

 

import com.alibaba.dubbo.config.annotation.Service;

import com.anyec.demo.model.User;

@Service   //使用的是dubbo的service

@Component  //使用的是spring注解,避免service重复

public class UserServiceImpl implements com.anyec.demo.service.UserService{

 

@Override

public User getUserById(String id) {

User u=new User();

u.setId(id);

u.setName("test"+id);

u.setCreateDate(new Date());

return u;

}

 

@Override

public List<User> listUser(User u2) {

List<User> list=new ArrayList<User>();

for(int i=0;i<10;i++){

User u=new User();

u.setId(UUID.randomUUID().toString());

u.setName("test"+i);

u.setCreateDate(new Date());

list.add(u);

}

return list;

}

 

}

 

```

 

## 3 消费端实现

 

3.1 创建工程加入pom依赖

 

```

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

 

<groupId>com.anyec</groupId>

<artifactId>dobbo-demo-consumer</artifactId>

<version>1.0.0</version>

<packaging>jar</packaging>

 

<name>dobbo-demo-consumer</name>

<description>Demo project for Spring Boot</description>

 

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.5.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

 

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

 

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<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>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

 

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

 

 

</project>

 

```

 

2.2 添加配置项

 

```

spring.application.name=demo-dubbo-consumer

spring.dubbo.registry=zookeeper://localhost:2181

```

 

 

 

2.3添加消费实现

 

```java

package com.anyec.demo.consumer;

 

import java.util.Date;

import java.util.List;

 

import org.springframework.stereotype.Component;

 

import com.alibaba.dubbo.config.annotation.Reference;

import com.alibaba.fastjson.JSON;

import com.anyec.demo.model.User;

import com.anyec.demo.service.UserService;

 

@Component

public class UserClientService {

@Reference(interfaceClass = UserService.class)

UserService userService;

public void getUser(){

User u = userService.getUserById("");

System.out.println(u);

}

public void listUser(){

User u = new User();

u.setId("aaa");

u.setName("aasdfdsf");

u.setCreateDate(new Date());

List<User> list = userService.listUser(u);

System.out.println( JSON.toJSONString(list));

}

}

 

```

 

2.4添加注解

 

```

package com.anyec.demo.consumer;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

 

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;

 

@SpringBootApplication

@EnableDubboConfiguration  //添加注解

public class DobboDemoConsumerApplication {

 

public static void main(String[] args) {

SpringApplication.run(DobboDemoConsumerApplication.class, args);

}

}

 

```

 

 

分享到:
评论

相关推荐

    spring cloud 体系版本选型,涉及spring cloud alibaba spring boot spring cloud

    在构建基于Spring Cloud的微服务架构时,版本选型是一个至关重要的步骤,它直接影响到系统的稳定性和可维护性。Spring Cloud作为一个广泛使用的微服务框架,其版本迭代迅速,每个版本都有其特定的功能特性和生命周期...

    Spring Cloud实战 _springcloud实战_springcloud_

    《Spring Cloud实战》一书深入探讨了Spring Cloud这一强大的微服务框架,它是当前软件开发领域中最受欢迎的构建微服务架构的工具。Spring Cloud基于Spring Boot的便利性,为开发者提供了全面的微服务开发支持,包括...

    spring-cloud项目_springcloud_springcloud项目_springcloud_spring-clou

    Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...

    SpringCloud中文文档

    Spring Cloud中文文档 Spring Cloud 是一个用于快速构建分布式系统的工具集,提供了配置管理、服务发现、断路器、智能路由、微代理、控制总线等多种功能。这些功能可以帮助开发人员快速地支持实现分布式系统中的...

    SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点

    SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点或者说技能点且都有对应的博客介绍,代码开箱即用适合新手学习或老司机复习。 SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点...

    SpringCloud项目源码下载.docx

    根据提供的文件信息,我们可以深入探讨与Spring Cloud相关的知识点。尽管文档标题和描述较为简单,但可以从这些信息中提炼出关于Spring Cloud项目的源码下载、Spring Cloud的基本概念、用途及其核心组件等方面的内容...

    基于SpringCloud的快递驿站系统源码.zip

    基于SpringCloud的快递驿站系统源码 基于SpringCloud的快递驿站系统源码 基于SpringCloud的快递驿站系统源码 基于SpringCloud的快递驿站系统源码 基于SpringCloud的快递驿站系统源码 基于SpringCloud的...

    springCloud-master_单点登录_springCloud单点登录_SpringCloud系统_springclou

    在"springCloud-master_单点登录_springCloud单点登录_SpringCloud系统_springcloud eureka单点登录"这个项目中,我们将重点探讨如何在SpringCloud环境中实现单点登录(Single Sign-On,简称SSO)。 单点登录是一种...

    SpringCloud项目实战各组件源代码案例

    springcloud生产者与消费者项目实战案例 Spring Cloud 中断路器 Circuit Breaker的应用 配置 Spring Cloud Config Server Spring Cloud Config使用Oracle数据库作为后端配置存储 Spring Cloud Config + Spring Cloud...

    基于spring cloud 和vue全家桶的开源电商源码

    基于spring cloud 和vue全家桶的开源电商源码基于spring cloud 和vue全家桶的开源电商源码基于spring cloud 和vue全家桶的开源电商源码基于spring cloud 和vue全家桶的开源电商源码基于spring cloud 和vue全家桶的...

    SpringCloud.pdf

    Spring Cloud 是一个强大的框架,专为开发人员设计,旨在简化构建分布式系统中的各种常见模式。分布式系统的复杂性催生了一系列模板模式,Spring Cloud 提供了一站式的解决方案,使得开发者能够快速支持并实现这些...

    基于SpringCloud微服务实现的互联网招聘平台源码.zip

    基于SpringCloud微服务实现的互联网招聘平台源码 基于SpringCloud微服务实现的互联网招聘平台源码 基于SpringCloud微服务实现的互联网招聘平台源码 基于SpringCloud微服务实现的互联网招聘平台源码 基于...

    springcloud视频学习

    《SpringCloud视频学习》 SpringCloud作为微服务架构的重要实现框架,深受广大开发者的喜爱。本资源包含了两部关于SpringCloud的视频教程,由尚硅谷出品,内容详实且易于理解,是学习SpringCloud的理想资料。 一、...

    Spring Cloud Alibaba操作手册.pdf

    Spring Cloud Alibaba 操作手册 Spring Cloud Alibaba 是一种基于 Spring Cloud 的微服务架构解决方案,旨在帮助开发者快速构建分布式系统。该手册旨在指导开发者如何使用 Spring Cloud Alibaba 实现微服务架构的...

    尚硅谷SpringCloud第2季2020版.mmap

    一篇很好的springCloud学习的思维导读,详细的介绍了,springCloud的搭建步骤以及各组件的说明讲解 涵盖 Eureka服务注册与发现 Zookeeper服务注册与发现 Consul服务注册与发现 Ribbon负载均衡服务调用 OpenFeign...

    spring cloud视频教程

    Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具包,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...

    尚硅谷周阳老师SpringCloud笔记

    【尚硅谷周阳老师SpringCloud笔记】是一份深入学习SpringCloud技术体系的教程资源,由知名教育机构尚硅谷的周阳老师编撰。SpringCloud作为微服务架构的重要框架,广泛应用于现代企业的分布式系统开发中。这份笔记...

    SpringCloud 15个完整例子

    SpringCloud是中国Java开发者广泛使用的微服务框架,它包含了一系列组件,用于构建分布式系统。这个压缩包文件"SpringCloud 15个完整例子"提供了一系列从基础到进阶的示例项目,帮助用户深入理解并实践SpringCloud的...

    SpringCloud——分布式配置中心(Spring Cloud Config)

    在微服务架构中,Spring Cloud Config 是一个强大的分布式配置中心,它允许开发人员将应用程序的配置存储在远程仓库中,并且可以在运行时动态地管理和更新这些配置,无需重启应用。这个特性对于大型分布式系统来说...

    基于springboot+springcloud实现的电商网站项目源代码+数据库,spring cloud进行微服务框架开发

    Spring cloud 实战电商网站项目( 模块) 目的: 综合应用 spring cloud进行微服务架构开发。 开发环境 操作系统 : windows Java环境 : JDK1.8(不能使用高版本) 开发工具 : Idea 2020 数据库: mysql 5.5以上 ...

Global site tag (gtag.js) - Google Analytics