详解Springboot整合Dubbo之代码集成和发布
本文介绍了springboot整合dubbo之代码集成和发布,分享给大家,具体如下:
1. boot-dubbo-api相关
打开boot-dubbo-api项目,正在src/main/java下创建一个包,并创建你需要dubbo暴露的接口testservice.java,并创建一个实体类用于测试user.java。如下图所示:
创建文件和包结构
user.java
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
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
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配置文件。
<?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文件。
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的配置文件。
# 在这里编写springboot的配置信息
3. boot-dubbo-consumer相关
首先我们先看看总共需要编写的内容,文件的层次结构图
boot-dubbo-consumer项目结构图
第一步:编写我们的controller控制类,在com.boot.controller包下新建一个testcontroller类,编写访问地址。
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配置文件。
<?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文件。
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的配置文件。
# 在这里编写springboot的配置信息 server: port: 8080 context-path: /
至此,代码部分已经编写完毕!!!
4. 安装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地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。