SpringBoot搭建Dubbo項目實現(xiàn)斐波那契第n項詳解
step1 新建項目
方法1:直接在IDEA里新建如圖:

方法2:在start.spring.io新建

可能有的小朋友已經(jīng)發(fā)現(xiàn)了,第一種方式的Server URL就是第二個的網(wǎng)站,都是一樣的
要新建兩個項目,第一個項目如上圖所示,第二個項目只需要將provider改為consumer
其余不變,解壓后通過IDEA打開
step2 新建需要的包和接口以及實現(xiàn)類
provider 項目結(jié)構(gòu):

consumer 項目結(jié)構(gòu):

請注意,兩個ServiceAPI在項目中的的所在位置,或者說包名要嚴(yán)格一致,否則后續(xù)會出問題
如果不一致,可以按照如下方式按需進(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
點擊鏈接保存,或者復(fù)制本段內(nèi)容,打開「阿里云盤」APP ,無需下載極速在線查看,視頻原畫倍速播放。
step3 在兩個項目的resource下新建配置文件
需要新建的名字為:spring-dubbo.xml
provider的該配置文件中寫入:
<?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)寫入:
<?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 代碼編寫
導(dǎo)入依賴
在兩個項目的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à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其中任意一個的端口號
這里修改consumer運行的端口號:

step5 運行
首先運行provider,然后運行consumer
結(jié)果:

到此這篇關(guān)于SpringBoot搭建Dubbo項目實現(xiàn)斐波那契第n項詳解的文章就介紹到這了,更多相關(guān)SpringBoot斐波那契內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)
下面小編就為大家?guī)硪黄狫ava VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Java實現(xiàn)讀取html文本內(nèi)容并按照格式導(dǎo)出到excel中
這篇文章主要為大家詳細(xì)介紹了如何使用Java實現(xiàn)讀取html文本提取相應(yīng)內(nèi)容按照格式導(dǎo)出到excel中,文中的示例代碼講解詳細(xì),需要的可以參考下2024-02-02
深入解析Java的Hibernate框架中的一對一關(guān)聯(lián)映射
這篇文章主要介紹了Java的Hibernate框架的一對一關(guān)聯(lián)映射,包括對一對一外聯(lián)映射的講解,需要的朋友可以參考下2016-01-01
解決mac最新版intellij idea崩潰閃退crash的問題
這篇文章主要介紹了解決mac最新版intellij idea崩潰閃退crash的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問題
這篇文章主要介紹了java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
spring-boot-thin-launcher插件分離jar包的依賴和配置方式
這篇文章主要介紹了spring-boot-thin-launcher插件分離jar包的依賴和配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09

