博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb 消息总线框架 Saka V0.0.1 发布
阅读量:6813 次
发布时间:2019-06-26

本文共 3165 字,大约阅读时间需要 10 分钟。

端午闲着无聊,自己撸了一个简单的框架,可以实现在使用SendClient发送消息,在Spring容器中,符合该消息机制的接收器将能够被执行,目前Saka处于0.0.1版本【】还有很多问题,但是基本可以实现以下的功能.

  • 自动扫描,无需配置繁琐接收器
  • application 配置日志以及总开关
  • sencClient客户端注入容器,使用Autowired即可注入使用

后期将计划支持

  • 支持异步发送消息
  • 添加支持发送优先级
  • 接收相关详细配置

使用方法

添加依赖

暂未上传,敬请期待

使用注解标注对象和执行器

(注意:目前仅支持最多无参接收或者一参接收,暂不支持多个参数接收消息)

  • 使用@SakaSService 既可以将此对象注入至Spring容器

  • 使用@SakaSubscribe即可声明某方法为接收方法

参数名称 说明 默认值 备注
debug 是否为调试模式 false 调试模式在使用中会打印日志

如下定义了三种基本的接收器

/** * 实现一个接收消息 * * 

使用@SakaService注入到Spring容器 * *

使用@SakaSubscribe标注这是一个接收器 * * @author tao */@SakaServicepublic class BaseService { /** 自动注入对象测试 */ @Autowired SpeakService speakService; /** 不接受参数 */ @SakaSubscribe public void sendEmpty() { speakService.speak(); System.out.println("exec sendEmpty "); } /** 接受一个参数 */ @SakaSubscribe public void sendString(String message) { speakService.speak(); System.out.println("exec sendString = " + message); } /** 接受一个参数自定义的参数类型 */ @SakaSubscribe public void sendClassObject(Message message) { speakService.speak(); System.out.println("exec sendClassObject = " + message.getName()); } }

注入SakaSendClient

Saka在应用启动的时候向Spring的Context中注入ISakaClient,在SpringBoot项目中可使用以下代码自动的注入Bean对象。

@RestControllerpublic class TestController {  /** 自动注入SakaClient */  @Autowired  SakaSendClient sakaSendClient;}

使用Client发送消息

在需要发送消息的地方,注入SakaClient对象后,使用send()或者send(Object)方法发送消息.

@RestControllerpublic class TestController {  /** 自动注入SakaClient */  @Autowired SakaSendClient sakaSendClient;  /**   * 尝试发送一个字符串消息   *   * @param name   * @return   * @throws Exception   */  @GetMapping("/string/{name}")  public String sendString(@PathVariable("name") String name) throws Exception {    sakaSendClient.send(name);    return name;  }  /**   * 尝试发送自定义类型消息   *   * @param message   * @return   * @throws Exception   */  @GetMapping("/message/{message}")  public String sendMessage(@PathVariable("message") String message) throws Exception {    Message messageObject = new Message().setName(message).setAge(12);    sakaSendClient.send(messageObject);    return messageObject.getName();  }  /**   * 尝试发送空消息   *   * @return   * @throws Exception   */  @GetMapping("/empty")  public String sendEmpty() throws Exception {    sakaSendClient.send();    return "success";  }}

控制台观察消息发送日志

可以使用注解@SakaSubscribe注解参数debug配置是否输入打印日志,默认是不打印日志。

//Saka注册接收器日志                                                     Saka ------> Add a methods execCommand(1) to Saka Saka ------> Add a methods sendClassObject(1) to Saka Saka ------> Add a methods printMessage(0) to Saka Saka ------> Add a methods speak(0) to Saka                                                                                  //Saka发送消息   Saka ------> Send data to testMethodes1 successfully              Saka ------>  Saka has successfully sent 1 times data.            Saka ------>  Saka has successfully sent 1 times data.            Saka ------>  Saka has successfully sent 1 times data.

关闭Saka

在使用的过程中,可以通过配置动态的关闭Saka,重新启动应用,可以看到以下提示则说明关闭成功。

Saka ------> Don't open the Saka, please check the configuration information

properties文件配置

saka.enable= false

yaml文件配置

saka:    enable: false

转载于:https://www.cnblogs.com/zhoutao825638/p/10382151.html

你可能感兴趣的文章
软件定时器算法
查看>>
pt-archiver 数据删除、迁移工具使用
查看>>
下载网站地址
查看>>
桌面虚拟化浅谈
查看>>
我的友情链接
查看>>
将 TensorFlow 移植到 Android手机,实现物体识别、行人检测和图像风格迁移详细教程...
查看>>
Hyper-V 自动化支持技术
查看>>
VS2010启动调试时报“未能将脚本调试器附加到计算机”
查看>>
Python中的一些面试题(2)
查看>>
无法启动 DTC 分布式事务服务,MS DTC 发生服务特定错误: 3221229584
查看>>
基于HTTP协议的轻量级开源简单队列服务:HTTPSQS
查看>>
【精品教程】Android高手进阶教程pdf分享
查看>>
VB.NET 自动打包程序
查看>>
CISCO引擎RPR SSO
查看>>
LINUX APACHE 安装测试
查看>>
Java导致登录UCS Manager异常
查看>>
HTTP协议
查看>>
Win10怎么改Host文件?Win10编辑host文件方法(无视权限)
查看>>
sql convert and cast
查看>>
我的NodeJS一年之旅总结
查看>>