spring boot 集成dubbo的示例演示
本demo使用spring boot 2.4.1版本集成 dubbo 2.7.15
1.創(chuàng)建maven項(xiàng)目及其子模塊

父工程pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lee.demo.dubbo.demo</groupId>
<artifactId>coupon-platform-normal-springboot</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>coupon-service-api</module>
<module>coupon-service-provider</module>
<module>user-service-api</module>
<module>user-service-provider</module>
<module>coupon-portal</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring-boot.version>2.4.1</spring-boot.version>
<dubbo.version>2.7.15</dubbo.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.lee.demo.dubbo.demo.userapi</groupId>
<artifactId>user-service-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.lee.demo.dubbo.demo.couponapi</groupId>
<artifactId>coupon-service-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.15</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-bom</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>2.其中coupon-service-api為接口

3.coupon-service-provider為接口實(shí)現(xiàn)類,注意,其啟動(dòng)類需要添加注解@EnableDubbo

pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lee.demo.dubbo.demo</groupId>
<artifactId>coupon-platform-normal-springboot</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.lee.demo.dubbo.demo.couponprovider</groupId>
<artifactId>coupon-service-provider</artifactId>
<name>coupon-service-provider</name>
<description>coupon-service-provider</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.lee.demo.dubbo.demo.couponapi</groupId>
<artifactId>coupon-service-api</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>com.lee.demo.dubbo.demo.CouponServiceProviderApplication</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>配置文件

實(shí)現(xiàn)類添加注解@DubboService

4.coupon-portal為web訪問(wèn)層,配置如下

pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lee.demo.dubbo.demo</groupId>
<artifactId>coupon-platform-normal-springboot</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.lee.demo.dubbo.demo.portal</groupId>
<artifactId>coupon-portal</artifactId>
<name>coupon-portal</name>
<description>coupon-portal</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.lee.demo.dubbo.demo.userapi</groupId>
<artifactId>user-service-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<type>pom</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>com.lee.demo.dubbo.demo.CouponPortalApplication</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>啟動(dòng)類

controller訪問(wèn)層,屬性注入時(shí),如果為RPC調(diào)用,則需要添加注解@DubboReference

5.依次啟動(dòng)接口提供者(springboot項(xiàng)目)
coupon-service-provider、user-service-provider以及web層coupon-portal



6.前端訪問(wèn):127.0.0.1:8080/coupon

至此完成了springboot 2.4.1集成 dubbo 2.7.15
到此這篇關(guān)于spring boot 集成dubbo的文章就介紹到這了,更多相關(guān)spring boot 集成dubbo內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IOC?容器啟動(dòng)和Bean實(shí)例化兩個(gè)階段詳解
這篇文章主要為大家介紹了IOC?容器啟動(dòng)和Bean實(shí)例化兩個(gè)階段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
spring boot中多線程開(kāi)發(fā)的注意事項(xiàng)總結(jié)
spring boot 通過(guò)任務(wù)執(zhí)行器 taskexecutor 來(lái)實(shí)現(xiàn)多線程和并發(fā)編程。下面這篇文章主要給大家介紹了關(guān)于spring boot中多線程開(kāi)發(fā)的注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09
RabbitMQ,RocketMQ,Kafka?事務(wù)性,消息丟失,消息順序性和消息重復(fù)發(fā)送的處理策略問(wèn)題
這篇文章主要介紹了RabbitMQ,RocketMQ,Kafka?事務(wù)性,消息丟失,消息順序性和消息重復(fù)發(fā)送的處理策略,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Java反射學(xué)習(xí) getClass()函數(shù)應(yīng)用
所謂反射,可以理解為在運(yùn)行時(shí)期獲取對(duì)象類型信息的操作,本文將詳細(xì)介紹,需要的朋友可以參考下2012-12-12
Eclipse+Java+Swing實(shí)現(xiàn)斗地主游戲(代碼)
這篇文章主要介紹了Eclipse+Java+Swing實(shí)現(xiàn)斗地主游戲并附上詳細(xì)的代碼實(shí)現(xiàn),正在學(xué)習(xí)的你可以當(dāng)小練習(xí)練練,希望對(duì)你有所幫助2022-01-01
使用IDEA開(kāi)發(fā)配置Java Web的初始化過(guò)程
該教程使用idea開(kāi)發(fā)工具初始化javaweb項(xiàng)目,該運(yùn)行在tomcat服務(wù)器上通過(guò)配置項(xiàng)目環(huán)境變量保證tomcat正常啟動(dòng),具體操作配置教程參考下本文2021-06-06
Java 使用poi把數(shù)據(jù)庫(kù)中數(shù)據(jù)導(dǎo)入Excel的解決方法
本篇文章介紹了,Java 使用poi把數(shù)據(jù)庫(kù)中數(shù)據(jù)導(dǎo)入Excel的解決方法。需要的朋友參考下2013-05-05
Java開(kāi)發(fā)者必備10大數(shù)據(jù)工具和框架
這篇文章主要為大家詳細(xì)介紹了Java開(kāi)發(fā)者必備10大數(shù)據(jù)工具和框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
MyBatis標(biāo)簽獲取數(shù)組或集合長(zhǎng)度的實(shí)現(xiàn)方式
本文介紹了四種常見(jiàn)的編程表達(dá)式:判斷列表長(zhǎng)度、遍歷數(shù)組、獲取數(shù)組或列表的元素(注意字符串拼接時(shí)的安全性)以及總結(jié),在使用這些表達(dá)式時(shí),應(yīng)注意參數(shù)類型與表達(dá)式中使用的類型相匹配,以確保代碼的正確性和安全性2025-10-10
如何避免在Java項(xiàng)目里大批量使用if-else?
想起剛開(kāi)始接觸JAVA時(shí),若遇到大量流程判斷語(yǔ)句,幾乎滿屏都是if-else語(yǔ)句,多得讓自己都忘了哪里是頭,哪里是尾,但是,縱然滿屏是if-else,但彼時(shí)也沒(méi)有覺(jué)得多別扭.等到編程能力漸漸提升之后,再回過(guò)頭去看曾經(jīng)寫(xiě)過(guò)的滿屏if-else時(shí),感覺(jué)全都是翔.....,需要的朋友可以參考下2021-06-06

