SpringBoot搭建Dubbo項(xiàng)目實(shí)現(xiàn)斐波那契第n項(xiàng)詳解
step1 新建項(xiàng)目
方法1:直接在IDEA里新建如圖:
方法2:在start.spring.io新建
可能有的小朋友已經(jīng)發(fā)現(xiàn)了,第一種方式的Server URL就是第二個(gè)的網(wǎng)站,都是一樣的
要新建兩個(gè)項(xiàng)目,第一個(gè)項(xiàng)目如上圖所示,第二個(gè)項(xiàng)目只需要將provider改為consumer
其余不變,解壓后通過(guò)IDEA打開(kāi)
step2 新建需要的包和接口以及實(shí)現(xiàn)類
provider 項(xiàng)目結(jié)構(gòu):
consumer 項(xiàng)目結(jié)構(gòu):
請(qǐng)注意,兩個(gè)ServiceAPI在項(xiàng)目中的的所在位置,或者說(shuō)包名要嚴(yán)格一致,否則后續(xù)會(huì)出問(wèn)題
如果不一致,可以按照如下方式按需進(jìn)行更改
xsd放到指定目錄下:
C:\Users\用戶名\.lemminx\cache\http\code.alibabatech.com\schema\dubbo
文件:dubbo.xsd
下載鏈接:
「dubbo.xsd」
鏈接: https://pan.baidu.com/s/1iqQl-TlrHW2CsGN9kG5UoA?pwd=6xp4 提取碼: 6xp4
點(diǎn)擊鏈接保存,或者復(fù)制本段內(nèi)容,打開(kāi)「阿里云盤(pán)」APP ,無(wú)需下載極速在線查看,視頻原畫(huà)倍速播放。
step3 在兩個(gè)項(xiàng)目的resource下新建配置文件
需要新建的名字為:spring-dubbo.xml
provider的該配置文件中寫(xiě)入:
<?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應(yīng)用名稱 --> <dubbo:application name="springboot-buddo-provider"/> <!-- 發(fā)布者 dubbo協(xié)議 --> <dubbo:protocol name="dubbo" port="20881"/> <!-- 定義bean --> <bean id="providerImpl" class="com.springdubbo.demo.springbootdubbo.apiImpl.ProviderImpl"/> <!-- dubbo服務(wù) 發(fā)布者發(fā)布服務(wù) 需要暴露的服務(wù)接口 --> <dubbo:service interface="com.springdubbo.demo.springbootdubbo.ServiceAPI" ref="providerImpl" registry="N/A"/> </beans>
consumer的該配置文件內(nèi)寫(xiě)入:
<?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應(yīng)用名稱 --> <dubbo:application name="springboot-buddo-consumer"/> <!-- 遠(yuǎn)程服務(wù)調(diào)用代理 --> <dubbo:reference id="consumerImpl" interface="com.springdubbo.demo.springbootdubbo.ServiceAPI" url="dubbo://localhost:20881" /> </beans>
step4 代碼編寫(xiě)
導(dǎo)入依賴
在兩個(gè)項(xiàng)目的pom.xml下均添加依賴:
<dependency> <groupId>com.alibaba.spring.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
provider
ProviderImpl
Service注解一定不要忘記加,而且一定要是dubbo的Service
package com.springdubbo.demo.springbootdubbo.apiImpl; import com.alibaba.dubbo.config.annotation.Service; import com.springdubbo.demo.springbootdubbo.ServiceAPI; /** * @author wuyt * @data 2022/6/11 * @apiNote */ @Service public class ProviderImpl implements ServiceAPI { public String getMessage(String message) { return "springboot-dubbo-provider =>>>>>" + message; } public String getTheFeibN(int n) { //斐波那契數(shù)列第n項(xiàng)的實(shí)現(xiàn)邏輯 } }
ServiceAPI
package com.springdubbo.demo.springbootdubbo; /** * @author wuyt * @data 2022/6/11 * @apiNote */ public interface ServiceAPI { public String getMessage(String message); public String getTheFeibN(int n); }
SpringbootDubboApplication
一定要加上ImportResource注解
package com.springdubbo.demo.springbootdubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ImportResource; @SpringBootApplication @ImportResource("classpath:spring-dubbo.xml") public class SpringbootDubboApplication { public static void main(String[] args) { SpringApplication.run(SpringbootDubboApplication.class, args); } }
consumer
ServiceAPI
package com.springdubbo.demo.springbootdubbo; /** * @author wuyt * @data 2022/6/11 * @apiNote */ public interface ServiceAPI { public String getMessage(String message); public String getTheFeibN(int n); }
SpringbootDubboApplication
package com.springdubbo.demo.springbootdubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.ImportResource; @SpringBootApplication @ImportResource("classpath:spring-dubbo.xml") public class SpringbootDubboApplication { public static void main(String[] args) { ConfigurableApplicationContext count = SpringApplication.run(SpringbootDubboApplication.class, args); ServiceAPI impl = (ServiceAPI)count.getBean("consumerImpl"); // System.out.println(impl.getMessage("Hello dubbo")); System.out.println(impl.getTheFeibN(10)); } }
端口沖突更改
可以修改provider或者是consumer其中任意一個(gè)的端口號(hào)
這里修改consumer運(yùn)行的端口號(hào):
step5 運(yùn)行
首先運(yùn)行provider,然后運(yùn)行consumer
結(jié)果:
到此這篇關(guān)于SpringBoot搭建Dubbo項(xiàng)目實(shí)現(xiàn)斐波那契第n項(xiàng)詳解的文章就介紹到這了,更多相關(guān)SpringBoot斐波那契內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)
下面小編就為大家?guī)?lái)一篇Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10Java實(shí)現(xiàn)讀取html文本內(nèi)容并按照格式導(dǎo)出到excel中
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)讀取html文本提取相應(yīng)內(nèi)容按照格式導(dǎo)出到excel中,文中的示例代碼講解詳細(xì),需要的可以參考下2024-02-02java IO流將一個(gè)文件拆分為多個(gè)子文件代碼示例
這篇文章主要介紹了java IO流將一個(gè)文件拆分為多個(gè)子文件代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12深入解析Java的Hibernate框架中的一對(duì)一關(guān)聯(lián)映射
這篇文章主要介紹了Java的Hibernate框架的一對(duì)一關(guān)聯(lián)映射,包括對(duì)一對(duì)一外聯(lián)映射的講解,需要的朋友可以參考下2016-01-01解決mac最新版intellij idea崩潰閃退crash的問(wèn)題
這篇文章主要介紹了解決mac最新版intellij idea崩潰閃退crash的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問(wèn)題
這篇文章主要介紹了java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07spring-boot-thin-launcher插件分離jar包的依賴和配置方式
這篇文章主要介紹了spring-boot-thin-launcher插件分離jar包的依賴和配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09