# mini-dubbo
**Repository Path**: applesline/mini-dubbo
## Basic Information
- **Project Name**: mini-dubbo
- **Description**: 迷你版dubbo实现,零配置、易于使用,支持redis、zookeeper注册中心,轻量级ioc容器guice提供对象容器化支持
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-01-28
- **Last Updated**: 2024-01-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# mini-dubbo
##### 迷你版dubbo实现,零配置、易于使用,支持redis、zookeeper注册中心,轻量级ioc容器guice提供对象容器化支持
---
> 快速入门
#### 1.添加依赖
```xml
com.github.applesline
mini-dubbo
1.0.0
```
#### 2.业务接口定义
```java
package org.applesline.api;
public interface GreetingService {
String sayHello(String name);
}
```
---
#### 3.业务接口实现
```java
package org.applesline;
import org.applesline.api.GreetingService;
public class GreetingServiceImpl implements GreetingService {
public String sayHello(String name) {
return "hi " + name;
}
}
```
---
#### 4.接口与实现类进行绑定
```java
package org.applesline;
import com.google.inject.AbstractModule;
import com.google.inject.Singleton;
import org.applesline.api.GreetingService;
public class ServerConfig extends AbstractModule {
public void configure() {
bind(GreetingService.class).to(GreetingServiceImpl.class).in(Singleton.class);
}
}
```
---
##### 5.编写服务端程序并注册服务(guice中注册服务,相当于spring的ioc容器)
```java
package org.applesline;
import org.applesline.mini.dubbo.context.RpcContext;
import org.applesline.mini.dubbo.protocol.Protocol;
public class ServiceProvider {
public static void main(String[] args) {
// 将服务注册到guice中,默认使用本地zookeeper作为注册中心(127.0.0.1:2181),需要确保本地安装并启动了zk
RpcContext.setConfiguration(new ServerConfig());
Protocol protocol = RpcContext.getBean(Protocol.class);
protocol.export();
}
}
```
---
#### 6.编写客户端服务
```java
package org.applesline;
import org.applesline.api.GreetingService;
import org.applesline.mini.dubbo.context.RpcContext;
import org.applesline.mini.dubbo.proxy.ProxyFactory;
public class ServiceConsumer {
public static void main(String[] args) {
// 默认使用本地zookeeper作为注册中心(127.0.0.1:2181),需要确保本地安装并启动了zk
RpcContext.initContext();
GreetingService greetingService = ProxyFactory.getProxyObject(GreetingService.class);
System.out.println(greetingService.sayHello("mini-dubbo"));
}
}
```
### 自此便可以愉快的体验mini-dubbo带来的乐趣了
---
> 联系作者