結尾附原始碼
redis安裝教程參考:Spring Boot 入門(三)部署Redis服務
新建一個maven專案,劃分三層
common-公共:存放服務宣告
comsuer-客戶端:存放服務呼叫
server-服務端:存放服務實作

maven參考
<!-- dubbo 依賴--> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.8</version> </dependency> <!-- dubbo redis 依賴--> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-registry-redis</artifactId> <version>2.7.8</version> </dependency> <!-- redis 支持包 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.1</version> </dependency>
common
/** * 服務宣告 */ public interface ITicketService { String getTicket(); }

server
創建服務實作
import com.example.demo.dubbo.common.ITicketService; import org.apache.dubbo.config.annotation.DubboService; import java.util.UUID; @DubboService(version = "${dubbo.application.version}", application = "${dubbo.application.id}", protocol = "${dubbo.protocol.id}", registry = "${dubbo.registry.id}") //將服務發布出去,注意是dubbo的注解 /** * 服務實作 */ public class TicketServiceImpl implements ITicketService { @Override public String getTicket() { return UUID.randomUUID().toString(); } }
創建服務端的啟動類
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 服務啟動類 */ @SpringBootApplication public class DubboServiceApplication { public static void main(String[] args) { SpringApplication.run(DubboServiceApplication.class, args); } }
服務端配置
# dubbo 服務端配置
dubbo..application.name=server
dubbo.application.id=server
dubbo.application.version=1.0.0
dubbo.protocol.id=dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.id=dubbo-resis
dubbo.registry.address=redis://192.168.233.128:6379
dubbo.registry.username=root
dubbo.registry.password=123456
# 服務掃描位置
dubbo.scan.base-packages=com.example.demo.dubbo
redis沒有密碼可以洗掉這兩個配置(dubbo.registry.username、dubbo.registry.password)
我的redis有密碼,所以需要設定密碼,并且dubbo.registry.username隨便填,

啟動DubboServiceApplication
用RDM查詢到服務注冊成功

comsuer
創建服務呼叫
import com.example.demo.dubbo.common.ITicketService; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.stereotype.Component; /** * 服務呼叫 */ @Component public class UserService { @DubboReference(version = "${dubbo.application.version}", application = "${dubbo.application.id}", registry = "${dubbo.registry.address}") //遠程參考指定的服務,他會按照全類名進行匹配,看誰給注冊中心注冊了這個全類名 ITicketService ticketService; public String bugTicket() { String ticket = ticketService.getTicket(); return "在注冊中心拿到:" + ticket; } }
創建客戶端的啟動類
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 服務啟動類 */ @SpringBootApplication public class DubboComsuerApplication { public static void main(String[] args) { SpringApplication.run(DubboComsuerApplication.class, args); } }
客戶端配置
# dubbo 客戶端配置
dubbo..application.name=comsuer
dubbo.application.id=comsuer
dubbo.application.version=1.0.0
dubbo.protocol.id=dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.id=dubbo-resis
dubbo.registry.address=redis://192.168.233.128:6379
dubbo.registry.username=root
dubbo.registry.password=123456
測驗客戶端遠程呼叫服務
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = DubboComsuerApplication.class) public class UserServiceTest { @Autowired UserService userService; @Test public void bugTicket() { System.err.println(userService.bugTicket()); } /** * 注入組態檔 */ @Configuration @PropertySource("classpath:application.properties") static class PropertiesWithJavaConfig { @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer(); } } }
測驗成功,拿到一串UUID

原始碼下載地址:https://download.csdn.net/download/yfq961651795/74416295
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/404266.html
標籤:Java
上一篇:SpringBoot自動裝配
