MINA2.0用户手册中文版--第一章 MINA2.0入门

(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-11-12,强烈建议看原文)

1. NIO概述
        NIO是Java New IO的简称,在JDK1.4版本中引入该API,从那时起,就被广泛的应用。通过使用她,可以通过非阻塞的方式进行IO操作。
Java.nio.*包含了如下核心结构:
  • Buffers - 用于基本类型数据的容器
  • Charsets - Unicode代码单元序列和字节序列之间的对应映射关系的容器
  • Channels - 表示I/O操作到实体(所能连接到的实体,如硬件设备、文件和网络套接字等)的连接
  • Selectors - 提供可选的和可复用的非阻塞IO

2. 特性
MINA是一个简洁但功能齐全的网络应用程序框架,她有如下特性:
  • 为各种网络传输类型提供统一的API,包含:
    • 基于Java NIO的TCP/IP和UDP/IP
    • 基于RXTX的串行通信(RS232)
    • 同一个JVM内部的不同协议处理程序的管道通信
    • 自定义传输类型
  • 提供了类似于Servlet过滤器的Filter接口作为框架拓展
  • 低层次和高层的接口
    • 低层次:使用字节缓冲ByteBuffer
    • 高层次:使用自定义的消息对象和编码解码器
  • 高可定制的线程模型
    • 单线程
    • 单线程池
    • 多个线程池(即SEDA架构)
  • 支持通过使用Java 5的SSLEngine 直接操作SSL、TLS和StartTLS,
  • 过载防护和流量节流
  • 使用Mock对象进行单元测试
  • 基于JMX的框架管理
  • 通过StreamIOHandler提供基于流的IO操作
  • 可以很好的整合知名框架,如PicoContainer和Spring
  • MINA从前身Netty平滑迁移而来
3. 起步
(1) 下载
从该传送门下载MINA的最新发布版
(2) MINA发布版内容
下载完文件后,解压该tar.gz或者zip包到本机,下载到的文件解压开之后应该包含如下内容(补充:现在MINA分为两个包,一个是apache-mina-2.0.7-bin.zip,不包含下面的src文件夹;一个是apache-mina-2.0.7-src.zip,不包含dist和lib文件夹,因此两个都下载下来并解压到一个一起,才能完整组成如下):
--/mina-2.0.0
 |
 |- dist
 |- docs
 |- lib
 |- src
 |- LICENSE.txt
 |- LICENSE.jzlib.txt
 |- LICENSE.ognl.txt
 |- LICENSE.slf4j.txt
 |- LICENSE.springframework.txt
 |- NOTICE.txt
(3)内容详情
disk - 包括了MINA库的jar包
docs - 包含了API文档和依赖的库的情况
lib - 包含了使用MINA所需要的所有的jar包
除了这些之外,根目录还包含了一些许可文件和提醒文件
(补充:scr - 包含MINA的源代码)
(4)执行第一个MINA程序(补充:也可参考 MINA 2.0实例--TimeServer实现),
发布包也已经下载好了,那么,现在就来运行第一个MINA实例:
将如下jar包放入classpath中:
  • mina-core-2.0.0.jar
  • mina-example-2.0.0.jar
  • slf4j-api-1.5.11.jar
  • slf4j-log4j12-1.5.0.jar
  • log4j-1.2.15.jar
    对于日志使用的提示:
    Log4J 1.2的用户: slf4j-api.jar, slf4j-log4j12.jar, and Log4J 1.2.x
    Log4J 1.3的用户: slf4j-api.jar, slf4j-log4j13.jar, and Log4J 1.3.x
    java.util.logging的用户: slf4j-api.jar and slf4j-jdk14.jar
    重要提醒: 请确定你使用了正确的和你的日志框架匹配的slf4j-*.jar
    比如,slf4j-log4j12.jar 和 log4j-1.3.x.jar 是不能够正常一起使用的, 会使你的日志框架失灵
    如果你暂时不需要使用日志功能,你可以使用slf4j-nop.jar来屏蔽日志功能,或者使用slf4j-simple.jar来使用简单的日志功能

    在命令提示行里面输入以下命令:command

    >java org.apache.mina.example.gettingstarted.timeserver.MinaTimeServer
    

    就可以启动服务了,接下来就通过telnet来看看这个实例,输入以下telnet的命令

    telnet 127.0.0.1 9123
    

    将如下jar包放入classpath中:这样就成功运行了第一个MINA实例,你可以通过org.apache.mina.example包自己尝试其他的MINA实例。


    4.小结

    (补充:这个小结,貌似应该是第二章的小结,有可能是MINA官方没有注意到,不小心写错了,截止目前,这两个是一样的)
  • 这一章,我们了解了一下MINA客户端和服务端应用程序的基本体系结构,也简单的触及了一些TCP和UDP的客户端和服务端的实例的实现。
          在接下来的章节,将讨论MINA的核心结构和先进主题。

    你可能感兴趣的:(MINA2.0用户手册中文版--第一章 MINA2.0入门)