Spring Boot Starter之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:主要用于注解的处理扫描以及服务的管理

目前项目大体结构已经封装完毕,后续的优化、新增功能以及Bug修复会继续进行更新
Git地址:https://gitee.com/haijun1998/spring-boot-component-starter.git

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值