【转】Dubbo使用例子并且和Spring集成使用

本文介绍了一个简单的Dubbo与Spring集成的例子,包括客户端和服务端接口定义、登录及注册功能实现。通过具体代码展示了如何在服务端实现登录验证。

一.编写客户端和服务器端共用接口类
1.登录接口类
public interface LoginService {
    public User login(String name, String psw);
}
2.注册接口类
public interface RegisterService {
     public User createUser(String name, String psw);
}
二服务器端
1.登录接口实现
public class LoginServiceImpl implements LoginService{
    public User login(String name, String psw){
        User user = null;
        if(name.equals("penngo") && psw.equals("123")){
            user = new User();
            user.setId(1);
            user.setName("penngo");
        }
        return user;
    }
}
文档来源: Dubbo使用例子并且和Spring集成使用

转载于:https://www.cnblogs.com/wangyayun/p/6139135.html

### Spring Cloud 集成 Dubbo 实现方法 #### 项目配置与依赖引入 为了使 Spring Cloud Dubbo 能够协同工作,首先需要在项目的 `pom.xml` 文件中引入必要的依赖项。这些依赖包括但不限于: - **Spring Boot Starter Actuator**: 提供应用监控功能。 - **Spring Cloud Alibaba Starter Dubbo**: 支持 Spring Cloud 应用通过 Dubbo 进行服务间通信。 具体依赖如下所示[^1]: ```xml <dependencies> <!-- 引入自定义云提供者 --> <dependency> <groupId>fun.barryhome</groupId> <artifactId>cloud-provider</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- 引入阿里巴巴云启动器-Dubbo --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-dubbo</artifactId> </dependency> <!-- 引入SpringBoot执行器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> ``` #### 设置版本兼容性 确保所使用Java/JDK 版本、Spring Boot 及其相关扩展库的版本相互匹配非常重要。对于此集成方案而言,推荐使用以下组合来保障最佳实践效果[^2]: - JDK: 17+ - Spring Boot: 3.x.x (如3.2.4) - Spring Cloud Alibaba: 最新稳定版(例如2023.0.1.0) - Apache Dubbo: 3.x.x (比如3.3.1) #### 编写服务消费者与生产者的代码逻辑 ##### 定义接口 创建一个简单的接口用于声明远程调用的方法签名。这里假设有一个名为 `HelloService` 的接口,其中包含了一个返回字符串消息的方法 `sayHello(String name)`: ```java public interface HelloService { String sayHello(String name); } ``` ##### 注册中心连接设置 为了让基于 Spring Cloud 构建的应用程序能够找到并访问由 Dubbo 托管的服务实例,在应用程序属性文件(`application.yml`)里指定注册中心的相关参数是必不可少的一环。下面是一个典型的例子,展示了如何针对 Nacos 或 Zookeeper 来完成这项工作的基本配置[^4]: ```yaml spring: application: name: demo-service-consumer cloud: nacos: discovery: server-addr: localhost:8848 # 如果采用的是Zookeeper,则应替换为此处为zookeeper地址 dubbo: protocol: id: dubbo port: -1 registry: address: zookeeper://localhost:2181 # 若选用Nacos作为注册中心则改为nacos协议形式 ``` ##### 启动类注解说明 最后一步是在主应用程序入口点(即 @SpringBootApplication 类上),添加特定于 Dubbo 的扫描路径指示符(@EnableDubbo),以便框架可以自动识别到所有标记有@Service/@Reference 的 Bean 组件,并据此建立相应的代理对象来进行跨进程间的交互操作. ```java @SpringBootApplication @EnableDiscoveryClient @EnableDubbo(scanBasePackages = "com.example.service") // 替换成实际的服务包名 public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值