# dami
**Repository Path**: orange_half/dami
## Basic Information
- **Project Name**: dami
- **Description**: Dami(本地过程调用框架),专为本地多模块之间通讯解耦而设计,尤其是未知模块、隔离模块。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 47
- **Created**: 2023-09-08
- **Last Updated**: 2023-09-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Dami
Local Procedure Call Framework
Dami(本地过程调用框架),专为本地多模块之间通讯解耦而设计,尤其是未知模块、隔离模块。适用于任何 java 开发环境,零依赖、五个类。(有可能会推出多语言版本)
### 示例
* 依赖配置
```xml
org.noear
dami
0.1
```
如果涉及类加载器隔离:请在主程序标为编译,在其它模块标为可选。
* 代码
```java
public class DemoApp {
static String demo_topic = "demo.user.created";
public static void main(String[] args) throws Throwable {
listen();
send();
}
//监听
private static void listen() {
DamiBus.global().listen(demo_topic, payload -> {
System.out.println(payload);
//接收
if (payload.isRequest()) {
//如果是请求载体,则响应一下
DamiBus.global().response(payload, "你发了:" + payload.getContent());
}
});
}
//发送
private static void send() {
//普通发送
DamiBus.global().send(demo_topic, "{user:'noear'}");
//请求并等响应
String rst1 = DamiBus.global().requestAndResponse(demo_topic, "{user:'dami'}");
System.out.println("响应返回: " + rst1);
//请求并等回调
DamiBus.global().requestAndCallback(demo_topic, "{user:'solon'}", (rst2) -> {
System.out.println("响应回调: " + rst2);
});
}
}
```