Spring Boot Starter之Mina框架封装

article/2025/10/1 16:41:11

封装目的

目前是将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
{@ResourceMinaServerTest minaServerTest;/*** Rigorous Test :-)*/@Testpublic 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> {@Overrideprotected 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

在这里插入图片描述


http://chatgpt.dhexx.cn/article/7eDPbkSx.shtml

相关文章

java mina 框架 获取字节_浅谈Java的Mina框架传递对象

接触java的Mina框架已经有很多时间了&#xff0c;在网上也读过了很多的相关文章&#xff0c;发现Mina框架的确是一个值得拿来好好研究的东西&#xff0c;前些日子写了一个山寨QQ项目&#xff0c;其中的通信部分用到了java中自带的InputStream&#xff0c;OutputStream&#xff…

Java网络编程之MINA框架(1)

1、MINA&#xff1a; 一个简洁易用的基于TCP/IP通信的JAVA框架 2、下载地址&#xff1a; http://mina.apache.org/downloads-mina_2_0.html 3、至少需要&#xff1a; (在下载的文件中找以下两个jar包导入工程中) mina-core-2.0.21.jar、slf4j-api-1.7.26.jar 4、开发一个Mina应…

浅谈Mina框架

一、简介 Apache Mina Server 是一个网络通信应用框架&#xff0c;也就是说&#xff0c; 也可以提供JAVA对象的序列化服务、虚拟机管道通信服务等&#xff09;&#xff0c;Mina可以帮助我们快速开发高性能、高扩展性的网络通信应用&#xff0c;Mina提供了事件驱动、异步&#…

java mina框架实例_Apache Mina框架实践

1.为什么要用Apache Mina框架 ApacheMina Server 是一个网络通信应用框架,Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用&#xff0c;Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVANIO 作为底层支持)操作的编程模型。 2.ApacheMina框架使用 Mina的执行…

mina框架详解-小白收藏

目录 mina框架详解 1 简介 1.1 工作流程 1.2 服务端流程 2 简单的TCPServer 3 简单的TCPClient 4 介绍Mina的TCP的主要接口 5 日志配置 6 过滤器 7 协议编解码器 8 线程模型配置 mina框架详解 1 简介 Apache Mina Server 是一个网络通信应用框架&#xff0c;也就是…

Mina网络通信框架

认识 Mina Apache Mina Server 是一个网络通信应用框架&#xff0c;与 Netty 出自同一作者&#xff0c;Netty 借鉴了部分 Mina 的设计思路。 Mina 主要是对基于 TCP/IP、UDP/IP 协议栈的通信框架&#xff0c;Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用&#x…

MINA框架

MINA框架 一、小程序MINA框架分为三个部分&#xff1a; 有 View(视图层)、App Service(逻辑层)和 Natice(系统层)。 1、View(视图层) 视图层包含了小程序多个页面、每个页面都有WXML文件和 WXSS文件&#xff0c;是搭建页面视图的结构和展现样式。 2、App Service(逻辑层) …

图文详解mina框架

Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步…

要点初见:用Python进行微观交通模型仿真——基于SUMO的伯克利开源项目Flow Project初探与拓展

后续拓展&#xff1a;要点初见&#xff1a;安装教程与二度拓展——基于SUMO的Flow Project&#xff08;附代码链接&#xff09; 通俗来讲&#xff0c;微观交通模型仿真就是从车辆个体的视角&#xff08;看动画&#xff09;进行交通流仿真&#xff0c;对车辆个体随时间、空间的…

爬取豆瓣电影TOP100

爬虫 首先我们在网站中打开我们要爬的网站 “http://maoyan.com/board/4” 这就是豆瓣高分电影前100的榜单. 然后我们点击f12&#xff0c;再刷新一次&#xff0c;就可以看到网页的基本信息了。 这时候我们来看一下第一部‘我不是药神中的代码信息。’ 一个dd节点为一个电影的…

2020 年软件设计师考试上午真题

2020 年软件设计师考试上午真题答案解析 1、在程序执行过程中&#xff0c;高速缓存(Cache) 与主存间的地址映射由&#xff08;D &#xff09;。 A、操作系统进行管理 B、存储管理软件进行管理 C、程序员自行安排 D、硬件自动完成 解:CACHE与主存地址映射由硬件完成…

基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了

基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了 进入21世纪&#xff0c;新的编程语言如雨后春笋一样不停地冒出来。需求当然是重要的驱动力量&#xff0c;但是在其中起了重要作用的就是工具链的改善。 2000年&#xff0c;UIUC的Chris Lattner主持开发了一套称为LLVM…

基于LLVM的编译原理简明教程: 写一个自己的编译器​

LLVM简介 进入21世纪&#xff0c;新的编程语言如雨后春笋一样不停地冒出来。需求当然是重要的驱动力量&#xff0c;但是在其中起了重要作用的就是工具链的改善。 2000年&#xff0c;UIUC的Chris Lattner主持开发了一套称为LLVM(Low Level Virtual Machine)的编译器工具库套件。…

【极富参考价值!】第1章 ClickHouse 简介《ClickHouse 企业级大数据分析引擎实战》...

《ClickHouse 企业级大数据分析引擎实战》全书目录 目录 第1章 ClickHouse 简介 第2章 MergeTree 表存储引擎 第3章 ClickHouse SQL 执行原理 第4章 分布式的 ClickHouse:集群、分片、副本 第5章 项目实战:Spring Boot 集成 ClickHouse 第6章 ClickHouse 函数 第7章 集成外部…

32.3-5带有通配符的匹配(自动机)

功能 这个程序可以判断一个带有通配符*的模式串是否在文本串中存在,没有记录位置信息,当然,想记录也是可以的 样例输入: abccbacbababc ab*bab*c 样例输出: 1 思路 对于样例输入,有限自动机如图所示: 我们把每个通配符隔开的字串看做独立的,在其上运行KMP算法的comput_s…

自己动手写编译器:代码实现正则表达式到NFA状态机

在编译器开发中有两个非常重要的工具名为lex和yacc&#xff0c;他们是编译器的生成器。本质上我们不需要一行行去完成编译器的代码&#xff0c;只需要借助这两个工具&#xff0c;同时制定好词法解析和语法解析的规则后&#xff0c;这两个工具就会自动帮我们把代码生成&#xff…

mac搭建网站服务器,Mac上搭建Web服务器--Apache

局域网搭建 Web 服务器测试环境,因为Mac OS X 自带了 Apache 和 PHP 环境,我们只需要简单的启动它就行了。 1.命令:sudo apachectl start Apache服务器默认的web根目录在:/Library/WebServer/Documents Apache的配置文件在:/etc/apache2 相关命令: 停止 Apache:sudo apac…

aText for Mac(打字加速器)

aText作为一款文字效率的工具&#xff0c;对于文字工作者来说这款软件的目的是为了减少你在文字输入的过程当中的重复性&#xff0c;这款试用版本能够让你体验到一些较为基础的功能。 aText下载安装教程 镜像包下载完成后打开&#xff0c;双击.pkg按照安装引导器进行安装即可&a…

共享文件夹无法打开——服务器存储空间不足,无法处理此命令

原文地址为&#xff1a; 共享文件夹无法打开——服务器存储空间不足&#xff0c;无法处理此命令 共享某个文件夹后在网上邻居打开它&#xff0c;提示&#xff1a;“服务器存储空间不足&#xff0c;无法处理此命令”&#xff0c;如下图&#xff1a; 查看系统日志显示&#xff1…

彻底解决win10 docker desktop镜像过大导致“C盘存储空间不足”的问题。

彻底解决win10 docker desktop镜像过大导致“C盘存储空间不足”的问题。 win10安装docker只需要双击安装包&#xff0c;真正实现了傻瓜式安装&#xff0c;这一点真的十分方便&#xff01;不过用了义端时间docker后&#xff0c;突然有一天我注意到C盘原本充裕的空间容量&#x…