Spring Boot Starter之Mina框架封装

Spring Boot Starter之Mina框架封装Mina 通信框架封装

封装目的

目前是将Mina与Springboot的自动装配然后结合自身公司的业务对Mina进行统一的封装,目的是让代码可读性提高,也跟加便于使用,不用再写重复的代码

功能介绍

实现功能:可以通过注解的方式自动配置Mina服务端相关的代码

代码例子

@SpringBootTest(classes = SpringMinaTest.class) @RunWith(SpringRunner.class) @EnableAutoConfiguration //开启mina服务 @EnableMinaServer(value = { 
   "com.zhj.starter.mina"}) //主要是用于测试类扫描容器组件,真正引入框架不需要加入 @ComponentScan("com.zhj.starter") public class SpringMinaTest { 
    @Resource MinaServerTest minaServerTest; / * Rigorous Test :-) */ @Test public void run() throws InterruptedException { 
    System.out.println("启动:" + minaServerTest); Thread.currentThread().join(); } } 

Mina服务端

/ * 目前只集成了三种方式进行匹配, * 第一种jt808 * 第二种默认使用String字符串的方式进行解析 * 第三种使用链条进行匹配:目的用于不知道数据采用的什么协议进行通信 * 如果指定了 filters 那么会忽略掉 protocolType 属性,如果不指定 filters ,会按照协议类型进行注入解码器 * */ @ServerEndpoint(handler = MinaHandlerTest.class, protocolType = ProtocolEnum.HTTP, filters = { 
   CommonProtocolCodecFilter.class}) public class MinaServerTest extends AbstractMinaServer { 
    } 

Mina处理器

public class MinaHandlerTest extends AbstractHandler<HttpRequest> { 
    @Override protected void doProcessMessage(IoSession session, HttpRequest message) { 
    System.out.println("hello:" + message); } } 

包结构

  • annotation:注解
  • config:配置类
  • enums:协议枚举
  • filter:过滤器,目前实现了一个协议链的实现方式,就是在不确定协议的情况下,通过多个协议进行匹配,只要匹配了对应的一个就会进行处理,通过 CommonProtocolChainAdapter 实现,会找对应包路径的
  • handler:封装了统一的处理类
  • support:主要用于注解的处理扫描以及服务的管理

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201321.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午9:36
下一篇 2026年3月20日 上午9:36


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号