本文介绍了springboot整合dubbo之代码集成和发布,分享给大家,具体如下:
1. boot-dubbo-api相关
打开boot-dubbo-api项目,正在src/main/java下创建一个包,并创建你需要dubbo暴露的接口testservice.java,并创建一个实体类用于测试user.java。如下图所示:
创建文件和包结构
user.java
1
2
3
4
5
6
7
8
9
10
11
|
package com.boot.domain; import lombok.data; import java.io.serializable; @data public class user implements serializable { private integer id; private string username; private string password; private integer age; private integer gender; } |
testservice.java
1
2
3
4
5
6
|
package com.boot.service; import com.boot.domain.user; public interface testservice { string sayhello(string str); user finduser(); } |
2. boot-dubbo-provider相关
首先我们先看看总共需要编写的内容,文件的层次结构图
boot-dubbo-provider项目结构图
第一步:我们首先实现我们在boot-dubbo-api上定义的接口,创建一个testserviceimpl类并实现testservice
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package com.boot.service.impl; import com.alibaba.dubbo.config.annotation.service; import com.boot.domain.user; import com.boot.service.testservice; import java.text.simpledateformat; import java.util.date; @service (version = "1.0.0" ) public class testserviceimpl implements testservice { @override public string sayhello(string str) { simpledateformat dateformat = new simpledateformat( "yyyy-mm-dd hh:mm:ss" ); return dateformat.format( new date()) + ": " + str; } @override public user finduser() { user user = new user(); user.setid( 1001 ); user.setusername( "scott" ); user.setpassword( "tiger" ); user.setage( 20 ); user.setgender( 0 ); return user; } } |
注意:代码里的@service注解是com.alibaba.dubbo.config.annotation.service的。
第二步:在resources下创建一个config文件夹,在config下创建spring-dubbo.xml配置文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?xml version= "1.0" encoding= "utf-8" ?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/xmlschema-instance" xmlns:dubbo= "http://code.alibabatech.com/schema/dubbo" xsi:schemalocation="http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans.xsd http: //code.alibabatech.com/schema/dubbo http: //code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name= "provider" /> <!-- 注册中心的ip地址 --> <dubbo:registry address= "zookeeper://127.0.0.1:2181" /> <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前applicationcontext中所有的类 --> <dubbo:annotation package = "com.boot.service.impl" /> </beans> |
第三步:在com.boot包下新建springboot的入口类,创建一个providerapplication.java文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package com.boot; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.context.annotation.importresource; import java.io.ioexception; @springbootapplication @importresource ({ "classpath:config/spring-dubbo.xml" }) public class providerapplication { public static void main(string[] args) { springapplication.run(providerapplication. class , args); try { system.in.read(); } catch (ioexception e) { e.printstacktrace(); } } } |
第四步:最后在resources文件夹下面创建application.yml,springboot的配置文件。
1
|
# 在这里编写springboot的配置信息 |
3. boot-dubbo-consumer相关
首先我们先看看总共需要编写的内容,文件的层次结构图
boot-dubbo-consumer项目结构图
第一步:编写我们的controller控制类,在com.boot.controller包下新建一个testcontroller类,编写访问地址。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package com.boot.controller; import com.alibaba.dubbo.config.annotation.reference; import com.boot.domain.user; import com.boot.service.testservice; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restcontroller; @restcontroller @requestmapping ( "/" ) public class testcontroller { @reference (version = "1.0.0" ) private testservice testservice; @getmapping ( "hello" ) public string hello() { return testservice.sayhello( "hello springboot and dubbo!" ); } @getmapping ( "user" ) public user user() { return testservice.finduser(); } } |
第二步:在resources下创建一个config文件夹,在config下创建spring-dubbo.xml配置文件。
1
2
3
4
5
6
7
8
9
10
11
12
|
<?xml version= "1.0" encoding= "utf-8" ?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/xmlschema-instance" xmlns:dubbo= "http://code.alibabatech.com/schema/dubbo" xsi:schemalocation="http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans.xsd http: //code.alibabatech.com/schema/dubbo http: //code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name= "consumer" /> <dubbo:registry address= "zookeeper://127.0.0.1:2181" /> <dubbo:annotation package = "com.boot.controller" /> </beans> |
第三步:在com.boot包下新建springboot的入口类,创建一个consumerapplication.java文件。
1
2
3
4
5
6
7
8
9
10
11
|
package com.boot; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.context.annotation.importresource; @springbootapplication @importresource ({ "classpath:config/spring-dubbo.xml" }) public class consumerapplication { public static void main(string[] args) { springapplication.run(consumerapplication. class , args); } } |
第四步:最后在resources文件夹下面创建application.yml,springboot的配置文件。
1
2
3
4
|
# 在这里编写springboot的配置信息 server: port: 8080 context-path: / |
至此,代码部分已经编写完毕!!!
4. 安装zookeeper注册中心到电脑中
下载地址 zookeeper下载地址
点击后下载适合自己的版本,如图所示
zookeeper的下载
下载完毕后,解压缩该文件,进入conf文件夹,拷贝一份zoo_sample.cfg,在该目录生成zoo.cfg文件。
拷贝生成zoo.cfg文件
进入bin目录,运行zkserver.cmd文件。
运行zkserver.cmd
点击运行后出现如下图所示
运行成功
5. 现在终于可以运行我们的项目了
先运行我们的providerapplication.java文件的main函数,再运行consumerapplication.java文件的main函数。
打开浏览器访问
http://localhost:8080/hello
http://localhost:8080/user
好了,激动人心的时刻到了,我们终于完成了springboot和dubbo的集成了。
项目地址:springboot-dubbo项目github地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.jianshu.com/p/0837b48d1691