博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot+dubbo 注解方式实现入门
阅读量:4149 次
发布时间:2019-05-25

本文共 3155 字,大约阅读时间需要 10 分钟。

1、前期准备工作,在  下载需要的zk压缩文件,我下载的是3.4.9版本,在windows系统上安装,将文件解压到指定文件下面,在confg目录下面有一个zoo_sample.cfg文件,我们拷贝一份,修改文件名称为zoo.cfg

修改zoo.cfg文件当中配置信息,

在bin目录下,直接使用zkServer.cmd启动,默认使用端口是2181

接下来搭建一个maven项目作为provider,provider当中的pom.xml文件如下,注意这里引入的不是dubbo的jar包,而是spring-dubbo的jar包。

4.0.0
com.test.dubboTest
dubboTest
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
1.4.7.RELEASE
UTF-8
1.8
org.springframework.boot
spring-boot-starter
io.dubbo.springboot
spring-boot-starter-dubbo
1.0.0

provider当中的配置文件如下

#设置当前服务在zk当中的应用名称,全局唯一spring.dubbo.application.name=provider# 设置zk的服务端口spring.dubbo.registry.address=zookeeper://127.0.0.1:2181#设置采用的服务协议spring.dubbo.protocol.name=dubbospring.dubbo.protocol.port=20880# 设置当前项目当中使用dubbo注解的包路径spring.dubbo.scan=com.spring.springbootserver.port=8080

下面是服务的目录结构

先来看需要的domain对象,需要实现序列化接口

public class City implements Serializable {        private static final long serialVersionUID = 1433444989019131117L;    private String name;    private String content;    public City(String name, String content) {        this.name = name;        this.content = content;    }    //省略getter,setter方法}

接口类

public interface CityDubboService {    City findCityByName(String name);}

接口实现类,这里使用的@Service注解是dubbo当中的Service,并不是spring当中的Service注解

@Service(version = "1.0.0")public class CityDubboServiceImpl implements CityDubboService {    @Override    public City findCityByName(String name) {        return new City("浙江","杭州");    }}

关于启动类

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

以上是provider方需要提供的一些结构代码,接下来看consumer方需要的一些接口信息

注意:city, pom.xml,CityDubboService与上面的都一致,不再重复粘贴,下面主要是看配置文件

application.properties配置文件

server.port=8081## Dubbo 服务消费者配置,全局唯一spring.dubbo.application.name=consumer# zk注册中心地址spring.dubbo.registry.address=zookeeper://127.0.0.1:2181#当前项目当中,需要使用dubbo注入的包路径spring.dubbo.scan=com.spring.springboot

调用具体api接口的实现类

@Componentpublic class CityDubboConsumerService {    @Reference(version ="1.0.0")    CityDubboService cityDubboService;    public void printCity() {        String cityName="温岭";        City city = cityDubboService.findCityByName(cityName);        System.out.println(city.toString());    }}

启动类,加测试类

@SpringBootApplicationpublic class ClientApplication {    public static void main(String[] args) {        ConfigurableApplicationContext run = SpringApplication.run(ClientApplication.class, args);        CityDubboConsumerService cityService = run.getBean(CityDubboConsumerService.class);        cityService.printCity();    }}

调用显示

上述代码均在本地测试成功,在开发环境当中,是需要将api接口,以及domain对象,统一放在一个项目当中管理,在provider和consumer当中使用jar包进行引入。

你可能感兴趣的文章
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
Objective-C 基础入门(一)
查看>>
Flutter Boost的router管理
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
VUe+webpack构建单页router应用(一)
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
Mysql复制表以及复制数据库
查看>>
Linux分区方案
查看>>
如何使用 systemd 中的定时器
查看>>
git命令速查表
查看>>
linux进程监控和自动重启的简单实现
查看>>