Mina是底层数据传输和应用程序交互的接口
Mina处于项目的中间层,它不关心底层网络数据如何传输,只负责接收底层数据,过滤并转化为JAVA对象提供给我们的应用程序;然后将应用程序的响应值过滤并转化为底层识别的字节,提供给底层传输;
Mina的执行流程
核心的接口有IoService接口、IoFilter接口、IoHandler接口
IoService创建服务对象,则是把NIO繁琐的部分进行封装,提供简洁的接口
IoFilter是Mina的精髓,它可以进行日志记录,信息过滤,编码解码等操作,把数据接收发送从业务层独立出来
IoHandler做业务逻辑处理,和普通的应用程序没有区别
1、当IoService实例创建的时候,同事一个关联在Ioservice上的IoProcessor池、线程池也被创建;
2、当IoService建立套接字(IoAcceptor的bind()或IoConnector的connect()的方法被调用)时,IoService从线程池中取出一个线程,监听套接字端口;
3、当IoService监听到套接字上有连接请求时,建立IoService对象,从IoProcessor池中取出一个IoProcessor实例执行这个会话通道上的过滤器,IoHandler;
4、当这条IoSession通道进入空闲状态或关闭时,IoProcessor被回收