`
jlcon
  • 浏览: 172258 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Mina与Spring整合

阅读更多

本文将说明mina如何与Spring整合使用。原文请看http://mina.apache.org/integrating-with-spring.html

 

 

应用程序结构

我们将要构造一个如下内容的工程

  • 一个Handler
  • 两个Filter - Logging Filter 和 ProtocolCodec Filter
  • NioDatagram Socket


初始化代码

让我们先看看代码,我们省略了部分代码

 

public void initialize() throws IOException {

	// 创建一个 Acceptor
	NioDatagramAcceptor acceptor = new NioDatagramAcceptor();

	// 加入 Handler
	acceptor.setHandler(new ServerHandler());

	acceptor.getFilterChain().addLast("logging",
				new LoggingFilter());
	acceptor.getFilterChain().addLast("codec",
				new ProtocolCodecFilter(new SNMPCodecFactory()));

	// 创建 Session Configuration
	DatagramSessionConfig dcfg = acceptor.getSessionConfig();
        dcfg.setReuseAddress(true);
        logger.debug("Starting Server......");
        // 绑定并监听
        acceptor.bind(new InetSocketAddress(DEFAULT_PORT));
        logger.debug("Server listening on "+DEFAULT_PORT);
}

 

整合处理

与Spring整合我们需要以下步骤

  • 设置IO handler
  • 创建Filter并加入chain中
  • 创建并设置Socket


注意:最新版本的Mina并不像早起版本一样包含Spring连接的包。 The package is now named Integration Beans, to make the implementation work for all DI frameworks.


让我们看看Spring的配置文件。请注意观察我从配置文件中摘取的部分


这个例子源于mina发行版中的Chat example ,请参考例子中的XML文件。


让我们在Spring的上下文(Context)中设置IO Handler

 

  <bean id="trapHandler" class="com.ashishpaliwal.udp.mina.server.ServerHandler" />

 让我们创建Filter Chain

 

<bean id="snmpCodecFilter" class="org.apache.mina.filter.codec.ProtocolCodecFilter">
    <constructor-arg>
      <bean class="com.ashishpaliwal.udp.mina.snmp.SNMPCodecFactory" />
    </constructor-arg>
  </bean>

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

  <!-- filter chain. -->
  <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="snmpCodecFilter"/>
      </map>
    </property>
  </bean>

 在这里我们创建了一个Filter实例。在ProtocolCodec factory中我们使用了构造器注入,在后面是loggingFilter。我们定义完成了将要使用的Filter,然后我们接着定义执行这些Filter的Filter Chain,定义一个ID为“FilterChainBuidler”的Bean,然后将Filter注入其中。我们即将完成我们的整合,现在只需要创建一个Socket并绑定它。

 

让我们完成最后一部分

 

<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>

<!-- IoAcceptor 绑定在 161端口 -->
<bean id="ioAcceptor" class="org.apache.mina.transport.socket.nio.NioDatagramAcceptor" init-method="bind" destroy-method="unbind">
    <property name="defaultLocalAddress" value=":161" />
    <property name="handler" ref="trapHandler" />
    <property name="filterChainBuilder" ref="filterChainBuilder" />
</bean>

现在我们创建一个ioAcceptor并设置IO handler 和 Filter Chain。在Spring里写一个函数来读取配置文件。

 

public void initializeViaSpring() throws Exception {
    new ClassPathXmlApplicationContext("trapReceiverContext.xml");
}

 

我们只需要写一个main函数来调用这个方法就可以初始化mina了。

 

这是我的第一篇译作,水平有限大家多包涵。

分享到:
评论
1 楼 bonny 2009-04-16  
GOOD,抽空把XSOCKET你也弄一下。这样就全了。

相关推荐

    mina 集成spring 传输文件和文本

    通过以上这些知识点的深入理解和实践,你可以成功地将Mina与Spring集成,构建一个能够同时处理文件和文本传输的服务。这个过程涉及到了网络通信、协议设计、框架集成等多个层面,对提升你的Java网络编程能力大有裨益...

    spring boot 整合mina 串口

    **Spring Boot 整合Mina实现串口通信详解** 在Java开发中,有时我们需要与硬件设备进行串口通信,例如读取传感器数据或控制工业设备。Spring Boot作为一款轻量级的框架,使得快速构建应用变得简单。而Mina则是一款...

    mina2+spring结合实例

    《Mina2与Spring整合应用实战》 在Java开发领域,Apache Mina和Spring框架的结合使用能够构建高效、可扩展的网络应用。Mina2作为一个轻量级的网络通信框架,提供了高度抽象的API,使得开发者可以方便地处理网络I/O...

    Mina例子包含与spring整合

    在这个"Mina例子包含与Spring整合"的项目中,我们将探讨如何将MINA与流行的Java企业级框架Spring进行集成。 1. **Apache MINA**:MINA是基于Java NIO(非阻塞I/O)的网络应用框架,用于构建高性能、跨平台的服务器...

    mina 与spring的结合开发,包头指令

    在压缩包中的"MinaSpringDemo"可能包含了上述概念的示例代码,通过这个示例,你可以看到如何将MINA和Spring整合在一起,实现一个完整的网络服务应用,包括配置文件、过滤器、编码解码器和IoHandler的实现。...

    Mina-Spring-Hibernate.rar_mina_mina hibernate_spring mina

    4. Mina-Spring整合 Spring的IoC容器可以管理Mina服务端或客户端的生命周期,使得Mina的配置变得更加简单和灵活。通过Spring的Bean定义,我们可以配置Mina的Acceptor、ProtocolDecoder、ProtocolEncoder等组件,实现...

    apache mina-spring 服务端程序

    通过这个项目,开发者可以学习到如何将Mina的异步I/O能力与Spring的容器管理及依赖注入机制结合,构建出健壮且易于维护的网络服务端程序。这包括理解Mina的事件模型、Spring的bean管理和网络编程的最佳实践。同时,...

    基于spring的Mina框架

    Spring与Mina的整合** 在Spring中整合Mina,首先需要在Spring配置文件中声明Mina的相关bean,如Acceptor、ProtocolCodecFactory(编码解码工厂)和FilterChainBuilder(过滤器链构建器)。通过Spring的依赖注入,...

    mina+spring做的聊天室程序

    《基于Mina与Spring构建的聊天室程序详解》 在当今的互联网世界中,实时通信技术扮演着至关重要的角色,而Mina与Spring框架的结合则为开发高效、稳定的聊天室程序提供了强大的支持。本文将深入探讨如何利用Mina作为...

    mina+spring+hibernate搭建所需jar包

    在与MINA和Hibernate集成时,Spring可以用来管理服务端的bean,以及数据访问对象(DAO)和事务管理。 3. **Hibernate ORM**: Hibernate是一个强大的ORM框架,能够将Java对象映射到关系数据库中的表,从而减少了...

    springboot 深度整合mina开箱即用

    在本文中,我们将深入探讨如何将Spring Boot与Mina进行深度整合,以便为新手开发者提供一个开箱即用的解决方案。Spring Boot以其简洁的配置和快速的开发体验,已经成为Java领域中的主流微服务框架,而Mina则是一个...

    Mina+Struts2+Spring4+Mybatis3组合

    该项目是本人真实项目中使用到的mina + spring+struts2 + mybatis框架,里面有详细的注释说明,以及一个完整的接收消息、入库、返回例子。对需要真实项目开发的人员来说,可以直接使用。 另外,如果需要更加详细的...

    mina_spring模仿springmvc控制器

    本文将深入探讨如何将Mina与Spring结合,模仿Spring MVC的控制器模式,以适应移动终端的项目开发需求。 首先,理解Mina的核心概念是至关重要的。Mina提供了一个事件驱动的模型,通过I/O多路复用技术,如NIO(非阻塞...

    spring mvc + Mina 配置部署

    之前的项目需要用到mina,实现的功能主要是:服务端主动发送消息到客户端,这个的服务端为外网的...当然,我这里的服务端是整合的了spring 的,也可以直接把服务端独立出来,不整合spring,这个都一样,区别不大。

    springboot整合mina

    SpringBoot整合Mina是一个常见的Java开发任务,它涉及到SpringBoot框架与Apache Mina网络通信库的集成。Mina是一个轻量级、高性能的网络应用框架,主要用于构建服务器端的网络应用,如TCP/IP和UDP协议的服务。而...

    mina+spring实现多人聊天室程序

    Spring的IoC容器和AOP特性使得集成其他框架如Mina变得简单而优雅。 在构建多人聊天室程序时,首先我们需要在Spring配置文件中定义Mina的相关bean,包括ServerSocketConnector、ProtocolDecoder和ProtocolEncoder等...

    Spring-mybaits-mina三大框架的整合

    在"Spring-mybaits-mina三大框架的整合"中,我们将看到如何将这三大框架集成到一个项目中,以实现更高效、更灵活的网络服务和数据访问。首先,Spring作为整体架构的基石,它的依赖注入特性使得我们可以方便地管理...

    SSI+Mina2(Struts2+Spring4+Mybatis3+Mina2)集成发布就可运行

    标题中的"SSI+Mina2(Struts2+Spring4+Mybatis3+Mina2)集成发布就可运行"指的是一个基于Java的Web应用程序开发框架的整合,它结合了多种技术来构建高效、灵活和可扩展的网络应用。这个集成方案主要包括以下组件: 1....

    spring+mina实现http接口服务端通信客户端

    3. **集成Mina**:引入Mina的相关依赖,然后在Spring配置中定义Mina的ServerBootstrap,包括Acceptor、ProtocolHandler以及相关的配置。Mina的IoHandler接口需要实现,用于处理接收到的网络事件。 4. **编写...

    mina 学习资料

    9. **MINA与Spring集成**:MINA可以与Spring框架无缝集成,利用Spring的依赖注入和配置管理特性,简化MINA应用的开发和维护。 10. **最佳实践**:学习MINA的过程中,了解最佳实践至关重要,例如如何优化性能,如何...

Global site tag (gtag.js) - Google Analytics