您好,登錄后才能下訂單哦!
這篇文章主要介紹了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下載地址
點擊后下載適合自己的版本,如圖所示
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之代碼集成和發布的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。