MINA试用
来源:互联网 发布:hdmi数字矩阵切换器 编辑:程序博客网 时间:2024/04/30 19:37
简述:
Apache MINA是一款网络应用框架,帮助用户开发高性能和高可靠性的网络应用,他提供事件驱动,异步调用的API以及通过JAVA NIO实现的TCP/IP 和UDP/IP
官网:http://mina.apache.org/mina-project/index.html
其中,Java NIO: JAVA New IO的简写,特性包括:
1)为所有原始类型提供缓存支持;
2)字符解码编码解决方案;
3)Channel:一个新的原始I/O对象
4)支持锁和内存映射的文件访问接口
5)提供多路(non-blocking)非阻塞式的高伸缩性网络I/O
(引自: http://www.iteye.com/topic/834447)
我的理解 :
1) NioSocketAcceptor 是MINA的适配器。MINA中有过滤器和处理器的概念,处理模型:
request -> 过滤器A -> 过滤器B-> 处理器-> 过滤器B -> 过滤器A
由于之前对于Java Nio的认识几乎为零,这里的谈论出现的错误还望指正,
MINA实现的框架 直接来说就是在socket上通信,那么通信的话协议是很关键的,那么究竟选用什么协议呢?
MINA中需要继承并且实现一个ProtocolCodecFactory的类,这个类里需要定义ProtocolDecoder和ProtocolEncoder用来对传输的东西, 或是字节流 、或是序列化的对象进行解码与转码, 举个例子,从客户端要发一个person类的信息给服务器,那么首先要统一client端和server端的通信协议,比如大家都用序列化的对象,那么我们两者的ProtocolCodecFactory都定义成
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));
这是个过滤器,直接的说就是个转化器,在这里就是把一个object对象装换方法给定义了,所以Person要implements Serializable, 之后到服务器在把这个序列化的对象转换为在业务层认识的Person对象,如果是buffer流来处理其实是一样的道理,不过就是要自己定义一个ProtocolCodecFactory来处理协议的,注意的都是client和server端要统一就是了
MINA项目Maven的dependency
<dependencies><dependency><groupId>org.apache.mina</groupId><artifactId>mina-core</artifactId><version>2.0.4</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.2</version></dependency></dependencies>
附件是
网上前辈博客中的资源,斗胆将他转成了实际的技术原型(引自: http://www.blogjava.net/hoojo/archive/2012/08/01/384490.html)
资源页面:
http://download.csdn.net/detail/anialy/5018971
- MINA试用
- MINA
- mina
- MINA
- mina
- mina
- MINA
- mina
- Mina
- 试用
- 试用
- 试用
- 试用
- 试用
- 试用
- 试用
- 试用
- 【mina】mina传输对象
- iTextSharp.dll生成pdf 实战实例
- Creating user exits for substitutions
- setBackgroundColor
- oracle函数之-lpad 在字符前补空格或其它字符
- ThinkPHP模板中使用自定义函数的方法
- MINA试用
- 怀念浆洗被子的童年
- robots.txt语法大全
- 【JSP】jsp的运行原理
- hdu 2161
- VC 超链接
- python 安装 遇到 ImportError: No module named _struct
- Java取一年有多少周、某周的第一天和最后一天
- SAP PP 展开BOM(多层)程序代码