首页 > OOP语言 > 其它 > 正文

使用 Apache MINA 2 开发网络应用
2012-03-28 00:00:00   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

Spring 集成

Apache MINA 可以和流行的开源框架 Spring 进行集成,由 Spring 来管理 Apache MINA 中的对象。与 Spring 集成的方式也比较简单,只需要编写相应的 Spring 配置文件即可。清单 13 中给出了与 Spring 集成之后的计算器服务的配置文件。

清单 13. Apache MINA 与 Spring 集成的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans>
  <bean id="calculatorHandler" class="calculator.CalculatorHandler" />

  <bean id="loggingFilter" class="org.apache.mina.filter.logging.LoggingFilter" />

  <bean id="calculatorCodecFilter" class="org.apache.mina.filter. 
    codec.ProtocolCodecFilter">
    <constructor-arg>
      <bean class="org.apache.mina.filter.codec.textline.TextLineCodecFactory" />
    </constructor-arg>
  </bean>

  <bean id="filterChainBuilder" 
    class="org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder">
    <property name="filters">
      <map>
        <entry key="loggingFilter" value-ref="loggingFilter" />
        <entry key="codecFilter" value-ref="calculatorCodecFilter" />
        </map>
    </property>
  </bean>

  <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
    <property name="customEditors">
      <map>
       <entry key="java.net.SocketAddress">
        <bean class="org.apache.mina.integration.beans.InetSocketAddressEditor"/>
       </entry>
      </map>
    </property>
  </bean>

  <bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor" 
    init-method="bind" destroy-method="unbind">
    <property name="defaultLocalAddress" value=":10010" />
    <property name="handler" ref="calculatorHandler" />
    <property name="filterChainBuilder" ref="filterChainBuilder" />
  </bean>
</beans> 

清单 13 中创建 I/O 处理器和 I/O 过滤器的方式很直接。由于不能直接从 I/O 接受器获取过滤器链,这里创建了一个 org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder类的 bean,用来构建过滤器链。由 Apache MINA 提供的网络地址编辑器 org.apache.mina.integration.beans.InetSocketAddressEditor允许以“主机名 : 端口”的形式指定网络地址。在声明 I/O 接受器的时候,通过 init-method指明了当 I/O 接受器创建成功之后,调用其 bind方法来接受连接;通过 destroy-method声明了当其被销毁的时候,调用其 unbind来停止监听。

总结

Apache MINA 是一个很好的网络应用框架,它通过事件驱动的 API 为开发网络应用提供了良好的架构基础,同时也提供了丰富的 I/O 服务和 I/O 过滤器的实现,使得开发网络应用变得简单。本文详细介绍了 Apache MINA 中的基本概念,包括 I/O 服务、I/O 会话、I/O 过滤器和 I/O 处理器等,同时介绍了如何利用状态机来实现逻辑复杂的 I/O 处理器。除此之外,还讨论了 Apache MINA 如何与 JMX 和 Spring 进行集成。本文提供了一个简单的计算器服务和复杂的俄罗斯方块联机游戏作为示例,可以帮助读者更好的掌握基于 Apache MINA 的网络应用开发。

本文配套源码

相关热词搜索:

上一篇:使用Blueprint Container规范构建OSGi应用程序
下一篇:结合使用 Apache Geronimo 和 Lift

分享到: 收藏